Add vendor pre-population for bulk code and individual edit forms
- Add vendor-changed HTMX handlers for both bulk code and individual edit - Pre-populate default account at 100% when vendor is selected and no accounts exist - Fix render-accounts-section to render from step-params correctly - Change bulk code vendor-changed from hx-get to hx-post to include form data - Add routes for vendor-changed endpoints - Update e2e tests to cover vendor pre-population - Run lein cljfmt fix across codebase
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
[manifold.deferred :as de]
|
||||
[manifold.executor :as ex]))
|
||||
|
||||
(defn get-plaid-accounts
|
||||
(defn get-plaid-accounts
|
||||
([db]
|
||||
(-> (dc/q '[:find ?ba ?c ?external-id ?t
|
||||
:in $
|
||||
@@ -40,7 +40,6 @@
|
||||
db
|
||||
client-codes))))
|
||||
|
||||
|
||||
(defn plaid->transaction [t plaid-merchant->vendor-id]
|
||||
(alog/info ::trying-transaction :transaction t)
|
||||
(cond-> #:transaction {:description-original (:name t)
|
||||
@@ -57,7 +56,7 @@
|
||||
:db/id (random-tempid)})
|
||||
(not (str/blank? (:check_number t))) (assoc :transaction/check-number (Long/parseLong (:check_number t)))
|
||||
#_#_(plaid-merchant->vendor-id (:merchant_name t)) (assoc :transaction/default-vendor
|
||||
(plaid-merchant->vendor-id (:merchant_name t)))))
|
||||
(plaid-merchant->vendor-id (:merchant_name t)))))
|
||||
|
||||
(defn build-plaid-merchant->vendor-id []
|
||||
(into {}
|
||||
@@ -66,23 +65,22 @@
|
||||
:where
|
||||
[?v :vendor/plaid-merchant ?pm]
|
||||
[?pm :plaid-merchant/name ?pmn]]
|
||||
(dc/db conn ))))
|
||||
|
||||
(dc/db conn))))
|
||||
|
||||
(def single-thread (ex/fixed-thread-executor 1))
|
||||
|
||||
(defn rebuild-search-index []
|
||||
(de/future-with
|
||||
single-thread
|
||||
(auto-ap.solr/index-documents-raw
|
||||
auto-ap.solr/impl
|
||||
"plaid_merchants"
|
||||
(for [[result] (dc/qseq {:query '[:find (pull ?v [:plaid-merchant/name :db/id])
|
||||
:in $
|
||||
:where [?v :plaid-merchant/name]]
|
||||
:args [(dc/db conn)]})]
|
||||
{"id" (:db/id result)
|
||||
"name" (:plaid-merchant/name result)}))))
|
||||
single-thread
|
||||
(auto-ap.solr/index-documents-raw
|
||||
auto-ap.solr/impl
|
||||
"plaid_merchants"
|
||||
(for [[result] (dc/qseq {:query '[:find (pull ?v [:plaid-merchant/name :db/id])
|
||||
:in $
|
||||
:where [?v :plaid-merchant/name]]
|
||||
:args [(dc/db conn)]})]
|
||||
{"id" (:db/id result)
|
||||
"name" (:plaid-merchant/name result)}))))
|
||||
|
||||
(defn upsert-accounts []
|
||||
(try
|
||||
@@ -96,20 +94,16 @@
|
||||
(remove-nils
|
||||
{:plaid-account/external-id (:account_id a)
|
||||
:plaid-account/last-synced (coerce/to-date (coerce/to-date-time (-> item :status :transactions :last_successful_update))) :plaid-account/balance (or (some-> a
|
||||
:balances
|
||||
:current
|
||||
double)
|
||||
0.0)}))))
|
||||
:balances
|
||||
:current
|
||||
double)
|
||||
0.0)}))))
|
||||
(catch Exception e
|
||||
(alog/warn ::couldnt-upsert-account :error e))))
|
||||
|
||||
|
||||
(catch Exception e
|
||||
(alog/warn ::couldnt-upsert-accounts :error e))))
|
||||
|
||||
|
||||
|
||||
|
||||
(defn import-plaid-int []
|
||||
(let [_ (upsert-accounts)
|
||||
import-batch (t/start-import-batch :import-source/plaid "Automated plaid user")
|
||||
@@ -119,8 +113,8 @@
|
||||
(try
|
||||
(doseq [[bank-account-id client-id external-id access-token] (get-plaid-accounts (dc/db conn))
|
||||
:let [transaction-result (wrap-integration #(p/get-transactions access-token external-id start end)
|
||||
bank-account-id)
|
||||
accounts-by-id (by :account_id (:accounts transaction-result))]
|
||||
bank-account-id)
|
||||
accounts-by-id (by :account_id (:accounts transaction-result))]
|
||||
transaction (:transactions transaction-result)]
|
||||
(when (not (:pending transaction))
|
||||
(t/import-transaction! import-batch (assoc (plaid->transaction (assoc transaction
|
||||
|
||||
Reference in New Issue
Block a user