A better way to allow bulk select.

This commit is contained in:
Bryce Covert
2020-08-25 12:10:55 -07:00
parent bd2d10cf52
commit 4ac3e31e91
5 changed files with 142 additions and 51 deletions

View File

@@ -17,7 +17,8 @@
[auto-ap.datomic.accounts :as a]
[auto-ap.datomic.transaction-rules :as tr]
[auto-ap.rule-matching :as rm]
[clj-time.coerce :as coerce]))
[clj-time.coerce :as coerce]
[clojure.tools.logging :as log]))
(def approval-status->graphql (ident->enum-f :transaction/approval-status))
@@ -32,10 +33,37 @@
:end (+ (:start (:filters args) 0) (count transactions))}))
(defn unapprove-transactions [context args value]
(let [args (assoc args :id (:id context))
ids (:ids (d-transactions/raw-graphql-ids (update (<-graphql args) :approval-status enum->keyword "transaction-approval-status")))]
(d-transactions/unapprove ids)
(get-transaction-page context args value)))
(let [_ (assert-admin (:id context))
args (assoc args :id (:id context))
ids (some-> (:filters args)
(<-graphql)
(update :approval-status enum->keyword "transaction-approval-status")
(assoc :per-page Integer/MAX_VALUE)
(d-transactions/raw-graphql-ids )
:ids)
specific-ids (d-transactions/filter-ids (:ids args))
all-ids (into (set ids) specific-ids)]
(log/info "Unapproving " (count all-ids) args)
(d-transactions/unapprove all-ids)
{:message (str "Succesfully unapproved " (count all-ids) " transactions.")}))
(defn delete-transactions [context args value]
(let [_ (assert-admin (:id context))
args (assoc args :id (:id context))
ids (some-> (:filters args)
(<-graphql)
(update :approval-status enum->keyword "transaction-approval-status")
(assoc :per-page Integer/MAX_VALUE)
(d-transactions/raw-graphql-ids )
:ids)
specific-ids (d-transactions/filter-ids (:ids args))
all-ids (into (set ids) specific-ids)]
(log/info "Deleting " (count all-ids) args)
(d-transactions/delete all-ids)
{:message (str "Succesfully deleted " (count all-ids) " transactions.")}))
(defn transaction-account->entity [{:keys [id account_id amount location]}]
(remove-nils #:transaction-account {:amount (Double/parseDouble amount)