adds integration statuses to bank account pages.

This commit is contained in:
2022-07-08 11:59:59 -07:00
parent 2f2d582a4b
commit 789914b3f7
13 changed files with 234 additions and 58 deletions

View File

@@ -9,7 +9,31 @@
[datomic.api :as d]
[mount.core :as mount]
[unilog.context :as lc]
[yang.scheduler :as scheduler]))
[yang.scheduler :as scheduler]
[clojure.tools.logging :as log]))
(defn bank-account->integration-id [bank-account]
(or (->> bank-account
(d/pull (d/db conn) [:bank-account/integration-status])
:bank-account/integration-status
:db/id)
#db/id[:db.part/user]))
(defn get-client-transactions-or-mark-integration-fail [client-code yodlee-account bank-account]
(try
(let [result (client2/get-specific-transactions client-code yodlee-account)]
@(d/transact conn [{:db/id bank-account :bank-account/integration-status {:db/id (bank-account->integration-id bank-account)
:integration-status/state :integration-state/success
:integration-status/last-attempt (java.util.Date.)
:integration-status/last-updated (java.util.Date.)}}])
result)
(catch Exception e
@(d/transact conn [{:db/id bank-account :bank-account/integration-status {:db/id (bank-account->integration-id bank-account)
:integration-status/state :integration-state/failed
:integration-status/last-attempt (java.util.Date.)
:integration-status/message (.getMessage e)}}])
(log/warn e)
[])))
(defn import-yodlee2 []
(lc/with-context {:source "Import yodlee2 transactions"}
@@ -30,7 +54,8 @@
]
(d/db conn))]
(doseq [[yodlee-account bank-account client-code use-date-instead-of-post-date?] account-lookup
transaction (client2/get-specific-transactions client-code yodlee-account)]
transaction (get-client-transactions-or-mark-integration-fail client-code yodlee-account bank-account)]
(println transaction)
(t/import-transaction! import-batch (assoc (y/yodlee->transaction transaction use-date-instead-of-post-date?)
:transaction/bank-account bank-account
:transaction/client [:client/code client-code])))