making everyone do queries the same way.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
(ns auto-ap.datomic.checks
|
||||
(:require [datomic.api :as d]
|
||||
[auto-ap.datomic :refer [uri merge-query apply-sort-2 apply-pagination]]
|
||||
[auto-ap.datomic :refer [uri merge-query apply-sort-2 apply-pagination add-sorter-field]]
|
||||
[auto-ap.graphql.utils :refer [limited-clients]]
|
||||
[clojure.set :refer [rename-keys]]
|
||||
[clj-time.coerce :as c]))
|
||||
@@ -12,13 +12,6 @@
|
||||
(update :payment/type :db/ident)
|
||||
(rename-keys {:invoice-payment/_payment :payment/invoices})))
|
||||
|
||||
(defn add-arg [query name value where & rest]
|
||||
(let [query (-> query
|
||||
(update :args conj value)
|
||||
(update-in [:query :in] conj name)
|
||||
(update-in [:query :where] conj where))]
|
||||
(reduce #(update-in %1 [:query :where] conj %2) query rest)))
|
||||
|
||||
(def default-read '[*
|
||||
{:invoice-payment/_payment [* {:invoice-payment/invoice [*]}]}
|
||||
{:payment/client [:client/name :db/id :client/code]}
|
||||
@@ -34,6 +27,19 @@
|
||||
:in ['$]
|
||||
:where []}
|
||||
:args [db]}
|
||||
(:sort-by args) (add-sorter-field {"client" ['[?e :payment/client ?c]
|
||||
'[?c :client/name ?sorter]]
|
||||
"vendor" ['[?e :payment/vendor ?v]
|
||||
'[?v :vendor/name ?sorter]]
|
||||
"bank-account" ['[?e :payment/bank-account ?c]
|
||||
'[?c :bank-account/name ?sorter]]
|
||||
"check-number" ['(or-join [?e ?sorter]
|
||||
[?e :payment/check-number ?sorter]
|
||||
[(ground "" ?sorter)])]
|
||||
"date" ['[?e :payment/date ?sorter]]
|
||||
"amount" ['[?e :payment/amount ?sorter]]
|
||||
"status" ['[?e :payment/status ?sorter]]}
|
||||
args)
|
||||
|
||||
(limited-clients (:id args))
|
||||
(merge-query {:query {:in ['[?xx ...]]
|
||||
@@ -110,17 +116,6 @@
|
||||
true (apply-sort-2 args)
|
||||
true (apply-pagination args))))
|
||||
|
||||
(defn sort-fn [args]
|
||||
(cond
|
||||
(= "client" (:sort-by args))
|
||||
#(-> % :payment/client :client/name)
|
||||
|
||||
(= "vendor" (:sort-by args))
|
||||
#(-> % :payment/vendor :vendor/name (or "") (.toLowerCase ))
|
||||
|
||||
:else
|
||||
(keyword "payment" (:sort-by args))))
|
||||
|
||||
(defn graphql-results [ids db args]
|
||||
(let [results (->> (d/pull-many db default-read ids)
|
||||
(group-by :db/id))
|
||||
|
||||
Reference in New Issue
Block a user