Makes integreat run on datomic cloud
This commit is contained in:
@@ -1,28 +1,29 @@
|
||||
(ns auto-ap.import.common
|
||||
(:require
|
||||
[auto-ap.datomic :refer [conn]]
|
||||
[auto-ap.datomic :refer [conn pull-ref random-tempid]]
|
||||
[clojure.tools.logging :as log]
|
||||
[datomic.api :as d]))
|
||||
[datomic.client.api :as dc]))
|
||||
|
||||
(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]))
|
||||
(or (pull-ref (dc/db conn) :bank-account/integration-status bank-account)
|
||||
(random-tempid)))
|
||||
|
||||
(defn wrap-integration [f bank-account]
|
||||
(try
|
||||
(let [result (f)]
|
||||
@(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.)}}])
|
||||
(dc/transact conn {:tx-data [{: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)}}])
|
||||
(dc/transact conn {:tx-data [{: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)
|
||||
nil)))
|
||||
|
||||
Reference in New Issue
Block a user