Merge branch 'master' of bitbucket.org:brycecovertoperations/integreat

This commit is contained in:
Bryce Covert
2018-08-05 19:51:31 -07:00
13 changed files with 232 additions and 19 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,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))

View File

@@ -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")

View File

@@ -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)))))