making everyone do queries the same way.

This commit is contained in:
Bryce Covert
2019-05-04 19:40:29 -07:00
parent e6a36b190a
commit 1232033160
3 changed files with 74 additions and 95 deletions

View File

@@ -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))