lots of fixes to sorting and adding dates on checks.

This commit is contained in:
Bryce Covert
2018-07-27 11:59:33 -07:00
parent 9894bc72b3
commit 90ded7394e
7 changed files with 229 additions and 27 deletions

View File

@@ -50,20 +50,33 @@
(map db->clj)
(map data->fields)))
#_(defn add-sort-by [q sort-by asc]
(def all-keys #{:company-id :vendor-id :id :status :date :s3-uuid :s3-key :s3-url :check-number :memo :amount :paid-to :bank-account-id})
(defn add-sort-by [q sort-by asc]
(println sort-by)
(let [sort-by-key (keyword sort-by)]
(cond (all-keys sort-by-key)
(helpers/merge-order-by q [sort-by-key (when-not asc :desc)])
(cond (nil? sort-by)
(helpers/merge-order-by q [:date])
(= :date sort-by-key)
(helpers/merge-order-by q [:date (when-not asc :desc)])
(all-keys sort-by-key)
(helpers/merge-order-by q
[sort-by-key (when-not asc :desc)]
[:date])
(= :vendor sort-by-key)
(-> q
(helpers/merge-left-join [:vendors :v] [:= :v.id :invoices.vendor-id] )
(helpers/merge-order-by [:v.name (when-not asc :desc)]))
(helpers/merge-left-join [:vendors :v] [:= :v.id :checks.vendor-id] )
(helpers/merge-order-by [:v.name (when-not asc :desc)]
[:date]))
(= :company sort-by-key)
(-> q
(helpers/merge-left-join [:companies :c] [:= :c.id :invoices.company-id] )
(helpers/merge-order-by [:c.name (when-not asc :desc)]))
(helpers/merge-left-join [:companies :c] [:= :c.id :checks.company-id] )
(helpers/merge-order-by [:c.name (when-not asc :desc)]
[:date]))
:else
q)))
@@ -82,7 +95,7 @@
(defn get-graphql [{:keys [start sort-by asc id limit] :as args :or {limit 20}}]
(query
(cond-> (base-graphql args)
#_#_(not (nil? sort-by) ) (add-sort-by sort-by asc)
true (add-sort-by sort-by asc)
true (assoc :limit limit)
start (assoc :offset start))))

View File

@@ -95,18 +95,28 @@
(defn add-sort-by [q sort-by asc]
(let [sort-by-key (keyword sort-by)]
(cond (all-keys sort-by-key)
(helpers/merge-order-by q [sort-by-key (when-not asc :desc)])
(cond (nil? sort-by)
(helpers/merge-order-by q [:date])
(= :date sort-by-key)
(helpers/merge-order-by q [:date (when-not asc :desc)])
(all-keys sort-by-key)
(helpers/merge-order-by q
[sort-by-key (when-not asc :desc)]
[:date])
(= :vendor sort-by-key)
(-> q
(helpers/merge-left-join [:vendors :v] [:= :v.id :invoices.vendor-id] )
(helpers/merge-order-by [:v.name (when-not asc :desc)]))
(helpers/merge-order-by [:v.name (when-not asc :desc)]
[:date]))
(= :company sort-by-key)
(-> q
(helpers/merge-left-join [:companies :c] [:= :c.id :invoices.company-id] )
(helpers/merge-order-by [:c.name (when-not asc :desc)]))
(helpers/merge-order-by [:c.name (when-not asc :desc)]
[:date]))
:else
q)))
@@ -123,7 +133,7 @@
(defn get-graphql [{:keys [start sort-by asc limit] :as args :or {limit 20}}]
(query
(cond-> (base-graphql args)
(not (nil? sort-by) ) (add-sort-by sort-by asc)
true (add-sort-by sort-by asc)
true (assoc :limit limit)
start (assoc :offset start))))