From ed8b343e75dde28d75bb7a91e7be806632bf6006 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 10 Jun 2022 15:49:47 -0700 Subject: [PATCH] fixes plaid issues. --- src/clj/auto_ap/import/plaid.clj | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/clj/auto_ap/import/plaid.clj b/src/clj/auto_ap/import/plaid.clj index 774d4d4f..41c21351 100644 --- a/src/clj/auto_ap/import/plaid.clj +++ b/src/clj/auto_ap/import/plaid.clj @@ -2,7 +2,7 @@ (:require [auto-ap.datomic :refer [conn]] [auto-ap.plaid.core :as p] - [auto-ap.utils :refer [allow-once]] + [auto-ap.utils :refer [allow-once by]] [auto-ap.import.transactions :as t] [clj-time.core :as time] [clojure.tools.logging :as log] @@ -29,8 +29,10 @@ #:transaction {:description-original (:name t) :raw-id (:transaction_id t) :id (digest/sha-256 (:transaction_id t)) - :amount (double (:amount t)) - :date (coerce/to-date (auto-ap.time/parse (:date t) auto-ap.time/iso-date)) + :amount (if (= "credit" (:type (:account t))) + (- (double (:amount t))) + (double (:amount t))) + :date (coerce/to-date (auto-ap.time/parse (:authorized_date t) auto-ap.time/iso-date)) :status "POSTED"}) @@ -41,9 +43,13 @@ start (time/plus end (time/days -30))] (try (doseq [[bank-account-id client-id external-id access-token] (get-plaid-accounts (d/db conn)) - transaction (:transactions (p/get-transactions access-token external-id start end))] + :let [transaction-result (p/get-transactions access-token external-id start end)] + transaction (:transactions transaction-result) + accounts-by-id (by (:accounts transaction-result) :account_id)] (when (not (:pending transaction)) - (t/import-transaction! import-batch (assoc (plaid->transaction transaction) + (t/import-transaction! import-batch (assoc (plaid->transaction (assoc transaction + :account + (accounts-by-id (:account_id transaction)))) :transaction/bank-account bank-account-id :transaction/client client-id)))) (t/finish! import-batch)