46 lines
1.9 KiB
Clojure
46 lines
1.9 KiB
Clojure
(ns auto-ap.routes.yodlee
|
|
(:require
|
|
[auto-ap.graphql :as graphql]
|
|
[clj-http.client :as http]
|
|
|
|
[auto-ap.yodlee.core :as yodlee]
|
|
[auto-ap.graphql.utils :refer [->graphql assert-admin]]
|
|
[auto-ap.routes.utils :refer [wrap-secure]]
|
|
[clj-time.coerce :refer [to-date]]
|
|
[ring.middleware.json :refer [wrap-json-response]]
|
|
[compojure.core :refer [GET POST context defroutes wrap-routes]]
|
|
[clojure.string :as str]
|
|
[config.core :refer [env]]
|
|
))
|
|
|
|
(defroutes routes
|
|
(wrap-routes
|
|
(context "/yodlee" []
|
|
(GET "/fastlink" {:keys [query-params identity] :as request}
|
|
(assert-admin identity)
|
|
(let [[session token] (yodlee/get-access-token)]
|
|
|
|
|
|
{:status 200
|
|
:headers {"Content-Type" "application/edn"}
|
|
:body (pr-str {:session session
|
|
:token token
|
|
:app (:yodlee-app env)
|
|
|
|
:url (:yodlee-fastlink env)
|
|
|
|
}) }))
|
|
(GET "/accounts" {:keys [query-params identity] :as request}
|
|
(assert-admin identity)
|
|
(let [[session token] (yodlee/get-access-token)]
|
|
{:status 200
|
|
:headers {"Content-Type" "application/edn"}
|
|
:body (pr-str (yodlee/get-accounts)) }))
|
|
(POST "/accounts/:id" {:keys [query-params identity] {:keys [id]} :route-params :as request}
|
|
(assert-admin identity)
|
|
(let [[session token] (yodlee/get-access-token)]
|
|
{:status 200
|
|
:headers {"Content-Type" "application/edn"}
|
|
:body (pr-str (yodlee/update-yodlee (Long/parseLong id))) })))
|
|
wrap-secure))
|