adding automatic rule feature.

This commit is contained in:
Bryce Covert
2019-05-15 19:18:51 -07:00
parent 5f810ac2c4
commit 31aee76e61
4 changed files with 25 additions and 9 deletions

View File

@@ -9,7 +9,8 @@
[auto-ap.datomic.checks :as d-checks]
[auto-ap.datomic.transactions :as d-transactions]
[auto-ap.datomic.clients :as d-clients]
[auto-ap.time :as time]))
[auto-ap.time :as time]
[auto-ap.datomic.transaction-rules :as tr]))
@@ -107,8 +108,8 @@
:location "A"
:amount (Math/abs (double amount))}])}
remove-nils
apply-rules))))
apply-rules
remove-nils))))
(defn batch-transact [transactions]
@@ -125,6 +126,7 @@
:transaction-rule/dom-gte :transaction-rule/dom-lte
:transaction-rule/amount-gte :transaction-rule/amount-lte
:transaction-rule/client :transaction-rule/bank-account]} ]
(println transaction description)
(let [transaction-dom (some-> transaction
:transaction/date
.toInstant
@@ -180,11 +182,12 @@
true])))
(defn rule-applying-fn [rules]
(let [rules (transduce (map (fn [r] (update r :transaction-rule/description #(some-> % re-pattern))))
(let [rules (transduce (map (fn [r]
(update r :transaction-rule/description #(some-> % re-pattern))))
conj
[]
(sort prioritize-rule rules))]
(println rules)
(fn [transaction]
(let [matching-rules (->> rules
@@ -233,6 +236,7 @@
(:client/bank-accounts c)))
(d-clients/get-all))
transaction->client (comp (by :yodlee-account-id :client-id all-bank-accounts) :accountId)
transaction->bank-account-id (comp (by :yodlee-account-id :bank-account-id all-bank-accounts) :accountId)]
(batch-transact (transactions->txs transactions transaction->client transaction->bank-account-id (rule-applying-fn []))))))
transaction->bank-account-id (comp (by :yodlee-account-id :bank-account-id all-bank-accounts) :accountId)
all-rules (tr/get-all)]
(batch-transact (transactions->txs transactions transaction->client transaction->bank-account-id (rule-applying-fn all-rules))))))