From e6a36b190a0c4e0d71ab8ff43015ddb95439eda7 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sat, 4 May 2019 19:01:12 -0700 Subject: [PATCH] moving to merge-query --- src/clj/auto_ap/datomic/checks.clj | 4 -- src/clj/auto_ap/datomic/invoices.clj | 57 ++++++++++++++++++---------- 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/clj/auto_ap/datomic/checks.clj b/src/clj/auto_ap/datomic/checks.clj index b7780fcf..95e9d658 100644 --- a/src/clj/auto_ap/datomic/checks.clj +++ b/src/clj/auto_ap/datomic/checks.clj @@ -137,10 +137,6 @@ [(->> (graphql-results ids-to-retrieve db args)) matching-count])) -(defn count-graphql [args] - (->> (raw-graphql args) - (count))) - (defn get-by-id [id] (->> (d/pull (d/db (d/connect uri)) default-read id) diff --git a/src/clj/auto_ap/datomic/invoices.clj b/src/clj/auto_ap/datomic/invoices.clj index 99ebdb78..89741c2e 100644 --- a/src/clj/auto_ap/datomic/invoices.clj +++ b/src/clj/auto_ap/datomic/invoices.clj @@ -39,18 +39,28 @@ :where ['[?e :invoice/invoice-number]]} :args [(d/db (d/connect uri))]} - (limited-clients (:id args)) (add-arg '[?xx ...] (set (map :db/id (limited-clients (:id args)))) - '[?e :invoice/client ?xx]) - (:client-id args) (add-arg '?client-id (:client-id args) - '[?e :invoice/client ?client-id]) + (limited-clients (:id args)) + (merge-query {:query {:in ['[?xx ...]] + :where ['[?e :invoice/client ?xx]]} + :args [ (set (map :db/id (limited-clients (:id args))))]}) + (:client-id args) + (merge-query {:query {:in ['?client-id] + :where ['[?e :invoice/client ?client-id]]} + :args [ (:client-id args)]}) - (:client-code args) (add-arg '?client-code (:client-code args) - '[?e :invoice/client ?client-id] - '[?client-id :client/code ?client-code]) + (:client-code args) + (merge-query {:query {:in ['?client-code] + :where ['[?e :invoice/client ?client-id] + '[?client-id :client/code ?client-code]]} + :args [ (:client-code args)]}) - (:original-id args) (add-arg '?original-id (cond-> (:original-id args) (string? (:original-id args)) Long/parseLong ) - '[?e :invoice/client ?c] - '[?c :client/original-id ?original-id]) + (:original-id args) + (merge-query {:query {:in ['?original-id] + :where [ + '[?e :invoice/client ?c] + '[?c :client/original-id ?original-id]]} + :args [ (cond-> (:original-id args) + (string? (:original-id args)) Long/parseLong )]}) (:start (:date-range args)) (merge-query {:query {:in '[?start-date] :where ['[?e :invoice/date ?date] @@ -62,15 +72,24 @@ '[(<= ?date ?end-date)]]} :args [(c/to-date (:end (:date-range args)))]}) - (:import-status args) (add-arg '?import-status (keyword "import-status" (:import-status args)) - '[?e :invoice/import-status ?import-status]) - (:status args) (add-arg '?status (keyword "invoice-status" (:status args)) - '[?e :invoice/status ?status]) - (:vendor-id args) (add-arg '?vendor-id (:vendor-id args) - '[?e :invoice/vendor ?vendor-id]) - (seq (:invoice-number-like args)) (add-arg '?invoice-number-like (:invoice-number-like args) - '[?e :invoice/invoice-number ?invoice-number] - '[(.contains ^String ?invoice-number ?invoice-number-like)]))) + (:import-status args) + (merge-query {:query {:in ['?import-status] + :where ['[?e :invoice/import-status ?import-status]]} + :args [ (keyword "import-status" (:import-status args))]}) + (:status args) + (merge-query {:query {:in ['?status] + :where ['[?e :invoice/status ?status]]} + :args [ (keyword "invoice-status" (:status args))]}) + (:vendor-id args) + (merge-query {:query {:in ['?vendor-id] + :where ['[?e :invoice/vendor ?vendor-id]]} + :args [ (:vendor-id args)]}) + + (seq (:invoice-number-like args)) + (merge-query {:query {:in ['?invoice-number-like] + :where ['[?e :invoice/invoice-number ?invoice-number] + '[(.contains ^String ?invoice-number ?invoice-number-like)]]} + :args [(:invoice-number-like args)]}))) (map first) (<-datomic)))