Files
integreat/src/clj/auto_ap/import/plaid.fiddle
2024-05-26 20:17:50 -07:00

80 lines
4.2 KiB
Plaintext

(ns auto-ap.import.plaid)
(let [end (atime/local-now)
start (time/plus end (time/days -30))
[_ _ external-id access-token] (first (get-plaid-accounts (dc/db conn) "BCFM"))]
(p/get-balance access-token))
(def g *1)
(take 5 (:transactions g))
;; => ({:account_id "Dpj0d9yKmXsOxBd0eaL4UONyEJYomNIX7kba3",
;; :balances
;; {:available nil,
;; :current 17764.42,
;; :iso_currency_code "USD",
;; :limit nil,
;; :unofficial_currency_code nil},
;; :mask "1006",
;; :name "NICHOLAS TAPTELIS -91006",
;; :official_name "Business Gold Rewards Card",
;; :subtype "credit card",
;; :type "credit"})
(dc/q '[:find (pull ?pa [{ :plaid-item/_accounts [*]}])
:in $ ?ba
:where [?ba :bank-account/plaid-account ?pa]]
(dc/db conn)
[:bank-account/code "VS-BA6149"])
(auto-ap.datomic/pull-attr (dc/db conn) :db/id [:bank-account/code "VS-BA6149"])
(p/get-transactions "access-production-1aee2c7d-0a57-403d-83dc-28a252fb92b4" "jZrAPpjMoLU55oZdpPVVuk8D7XVjXnuv1EJy6" (clj-time.coerce/to-date-time #inst "2024-05-01") (clj-time.coerce/to-date-time #inst "2024-05-15"))
(user/init-repl)
(defn import-plaid-int-2 []
(let [
import-batch (t/start-import-batch :import-source/plaid "Automated plaid user")
end (atime/local-now)
start (time/plus end (time/days -30))
plaid-merchant->vendor-id (build-plaid-merchant->vendor-id)]
(try
(doseq [[bank-account-id client-id external-id access-token] (get-plaid-accounts (dc/db conn))
:when (= bank-account-id 17592234448533)
:let [_ (println "TRYING INTEGRATION")
transaction-result (wrap-integration #(p/get-transactions access-token external-id start end)
bank-account-id)
_ (println "FOUND" (count (:transactions transaction-result)))
accounts-by-id (by :account_id (:accounts transaction-result))]
transaction (:transactions transaction-result)]
(when (not (:pending transaction))
(t/import-transaction! import-batch (doto (assoc (plaid->transaction (assoc transaction
:account
(accounts-by-id (:account_id transaction)))
plaid-merchant->vendor-id)
:transaction/bank-account bank-account-id
:transaction/client client-id)
(#(println (:transaction/date %)))))))
(try
(rebuild-search-index)
(catch Exception e
(alog/error ::cant-index-plaid
:error e)
(println "CANT INDEX")))
(t/finish! import-batch)
(println "DONE")
(catch Exception e
(println "FAIL")
(t/fail! import-batch e)))))
(import-plaid-int-2)
{:transaction/bank-account 17592234448533, :transaction/date #inst "2024-05-14T07:00:00.000-00:00", :transaction/client 17592234448526, :transaction/status "POSTED", :transaction/plaid-merchant {:plaid-merchant/name "Integreat Restau", :db/id "99cb3ac3-1326-4090-8e36-721a0db3a7cf"}, :db/id "89d4fb46-bb17-436f-b1f9-505bfd67e3ec", :transaction/id "0c56701d74584f800b19b1ce6c7b15212b420626a0d0d28761bab4fec4e10ee8", :transaction/description-original "INTEGREAT RESTAU DES:ACH ID:408-340-3111 INDN:PALA UMBERTO CO ID:XXXXX03620 CCD", :transaction/amount -275.0, :transaction/raw-id "drKydaj39qUPPaR0DQyyHVrD4zb8XBIyxe9QJ"}
(auto-ap.datomic/pull-attr (dc/db conn) :db/id [:bank-account/code "NGGG-CB"])