Merge branch 'master' of bitbucket.org:brycecovertoperations/integreat
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
40
src/clj/auto_ap/routes/yodlee.clj
Normal file
40
src/clj/auto_ap/routes/yodlee.clj
Normal file
@@ -0,0 +1,40 @@
|
||||
(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)
|
||||
|
||||
}) }))
|
||||
(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)) })))
|
||||
wrap-secure))
|
||||
@@ -43,7 +43,9 @@
|
||||
user-session (login-user cob-session)]
|
||||
(-> (str (:yodlee-base-url env) "/accounts")
|
||||
(client/get {:headers (merge base-headers {"Authorization" (auth-header cob-session user-session)})
|
||||
:as :json}))))
|
||||
:as :json})
|
||||
:body
|
||||
:account)))
|
||||
|
||||
(defn get-provider-accounts []
|
||||
(let [cob-session (login-cobrand)
|
||||
@@ -75,6 +77,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")
|
||||
|
||||
@@ -68,23 +68,24 @@
|
||||
|
||||
|
||||
(try
|
||||
(transactions/upsert!
|
||||
{:post-date (time/parse post-date "YYYY-MM-dd")
|
||||
:id (sha-256 (str id))
|
||||
:account-id account-id
|
||||
:date (time/parse date "YYYY-MM-dd")
|
||||
:amount amount
|
||||
:description-original description-original
|
||||
:description-simple description-simple
|
||||
:type type
|
||||
:status status
|
||||
:company-id company-id
|
||||
:check-number check-number
|
||||
:bank-account-id (transaction->bank-account-id transaction)
|
||||
:check-id check-id
|
||||
})
|
||||
(when check-id
|
||||
(checks/update! {:id check-id :status "cleared"}))
|
||||
(when company-id
|
||||
(transactions/upsert!
|
||||
{:post-date (time/parse post-date "YYYY-MM-dd")
|
||||
:id (sha-256 (str id))
|
||||
:account-id account-id
|
||||
:date (time/parse date "YYYY-MM-dd")
|
||||
:amount amount
|
||||
:description-original description-original
|
||||
:description-simple description-simple
|
||||
:type type
|
||||
:status status
|
||||
:company-id company-id
|
||||
:check-number check-number
|
||||
:bank-account-id (transaction->bank-account-id transaction)
|
||||
:check-id check-id
|
||||
})
|
||||
(when check-id
|
||||
(checks/update! {:id check-id :status "cleared"})))
|
||||
|
||||
(catch Exception e
|
||||
(println e)))))
|
||||
|
||||
Reference in New Issue
Block a user