fixed issue with yodlee dates.

This commit is contained in:
Bryce Covert
2019-02-23 15:32:55 -08:00
parent 00e2c64317
commit 2a7068fa69
4 changed files with 47 additions and 31 deletions

View File

@@ -3,33 +3,37 @@
[auto-ap.graphql :as ql]
[buddy.auth :refer [throw-unauthorized]]
[clojure.edn :as edn]
[compojure.core :refer [GET PUT context defroutes
[compojure.core :refer [GET POST PUT context defroutes
wrap-routes]]))
(defn handle-graphql [{:keys [request-method query-params body edn-params method] :as r}]
(when (= "none" (:user/role (:identity r)))
(throw-unauthorized))
(try
(let [variables (some-> (query-params "variables")
edn/read-string)
body (some-> r :body slurp)]
(println "BODY" body)
{:status 200
:body (pr-str (ql/query (:identity r) (doto (if (= request-method :get) (query-params "query") body) println) variables ))
:headers {"Content-Type" "application/edn"}})
(catch Exception e
(if-let [result (:result (ex-data e))]
{:status 400
:body (pr-str result)
:headers {"Content-Type" "application/edn"}}
(if-let [message (:validation-error (ex-data e) )]
{:status 400
:body (pr-str {:errors [(merge {:message message} (ex-data e))]})
:headers {"Content-Type" "application/edn"}}
{:status 500
:body (pr-str {:errors [(merge {:message (.getMessage e)} (ex-data e))]})
:headers {"Content-Type" "application/edn"}})))))
(defroutes routes
(wrap-routes
(context "/graphql" []
(GET "/" {:keys [query-params] :as r}
(when (= "none" (:user/role (:identity r)))
(throw-unauthorized))
(try
(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"}})
(catch Exception e
(if-let [result (:result (ex-data e))]
{:status 400
:body (pr-str result)
:headers {"Content-Type" "application/edn"}}
(if-let [message (:validation-error (ex-data e) )]
{:status 400
:body (pr-str {:errors [(merge {:message message} (ex-data e))]})
:headers {"Content-Type" "application/edn"}}
{:status 500
:body (pr-str {:errors [(merge {:message (.getMessage e)} (ex-data e))]})
:headers {"Content-Type" "application/edn"}}))))))
(GET "/" x (handle-graphql x))
(POST "/" x (handle-graphql x)))
wrap-secure))