added ability to link yodlee directly in.

This commit is contained in:
BC
2018-08-02 21:34:00 -07:00
parent a9d8bf21f9
commit dfbffdc01e
13 changed files with 151 additions and 2 deletions

View File

@@ -6,6 +6,7 @@
[auto-ap.routes.reminders :as reminders]
[auto-ap.routes.graphql :as graphql]
[auto-ap.routes.vendors :as vendors]
[auto-ap.routes.yodlee :as yodlee]
[auto-ap.routes.events :as events]
[auto-ap.routes.checks :as checks]
[auto-ap.routes.exports :as exports]
@@ -33,6 +34,7 @@
(defroutes api-routes
(context "/api" []
exports/routes
yodlee/routes
invoices/routes
companies/routes
vendors/routes

View File

@@ -17,6 +17,7 @@
(defroutes routes
(context "/events" []
(POST "/yodlee-import" {:keys [query-params headers body] :as x}
(let [notification-type (get headers "x-amz-sns-message-type")]
(println "Received notification " notification-type)

View File

@@ -0,0 +1,34 @@
(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]]
[auto-ap.db.invoices-expense-accounts :as expense-accounts]
[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)
}) })))
wrap-secure))

View File

@@ -75,6 +75,23 @@
(recur (concat transactions transaction-batch) (+ batch-size skip))
transactions)))))
(defn get-access-token []
(let [cob-session (login-cobrand)
user-session (login-user cob-session)
token (->
(str (:yodlee-base-url env) "/user/accessTokens?appIds=" 10003600)
(client/get
{:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)})
:as :json})
:body
:user
:accessTokens
first
:value
)]
[user-session token]))
(defn create-user []
(let [cob-session (login-cobrand)]
(-> (str (:yodlee-base-url env) "/user/register")