Files
integreat/src/clj/auto_ap/routes/graphql.clj
2018-07-10 20:16:26 -07:00

25 lines
979 B
Clojure

(ns auto-ap.routes.graphql
(:require [auto-ap.db.companies :as companies]
[auto-ap.routes.utils :refer [wrap-secure wrap-spec]]
[auto-ap.entities.companies :as entity]
[auto-ap.graphql :as ql]
[buddy.auth :refer [throw-unauthorized]]
[clojure.edn :as edn]
[compojure.core :refer [GET PUT context defroutes
wrap-routes]]))
(defroutes routes
(wrap-routes
(context "/graphql" []
(GET "/" {:keys [query-params] :as r}
(when (= "none" (:role (:identity r)))
(throw-unauthorized))
(let [variables (some-> (query-params "variables")
edn/read-string)]
{:status 200
:body (pr-str (ql/query (:identity r) (query-params "query") variables ))
:headers {"Content-Type" "application/edn"}})))
wrap-secure))