(ns auto-ap.routes.yodlee2 (:require [auto-ap.yodlee.core2 :as yodlee] [auto-ap.graphql.utils :refer [assert-admin]] [auto-ap.routes.utils :refer [wrap-secure]] [compojure.core :refer [GET POST context defroutes wrap-routes]] [config.core :refer [env]] [clojure.tools.logging :as log] [auto-ap.datomic.clients :as d-clients])) (defroutes routes (wrap-routes (context "/yodlee2" [] (GET "/fastlink" {:keys [query-params identity] :as request} (assert-admin identity) (let [token (yodlee/get-access-token (get query-params "client"))] {:status 200 :headers {"Content-Type" "application/edn"} :body (pr-str {:token token :url (:yodlee2-fastlink env)}) })) (POST "/provider-accounts/refresh/" {:keys [query-params identity edn-params] {:keys [id]} :route-params :as request} (assert-admin identity) (log/info "refreshing " edn-params) (try (yodlee/refresh-provider-account (-> (:client-id edn-params) Long/parseLong d-clients/get-by-id :client/code) (:provider-account-id edn-params)) {:status 200 :headers {"Content-Type" "application/edn"} :body "{}" } (catch Exception e (log/error e) {:status 400 :headers {"Content-Type" "application/edn"} :body (pr-str {:message (.getMessage e) :error (.toString e)})}))) (POST "/provider-accounts/delete/" {:keys [edn-params identity] {:keys [id]} :route-params :as request} (assert-admin identity) (try (yodlee/delete-provider-account (-> (:client-id edn-params) Long/parseLong d-clients/get-by-id :client/code) (:provider-account-id edn-params)) {:status 200 :headers {"Content-Type" "application/edn"} :body (pr-str {}) } (catch Exception e (log/error e) {:status 400 :headers {"Content-Type" "application/edn"} :body (pr-str {:message (.getMessage e) :error (.toString e)})})))) wrap-secure))