Should fix most of the authentication issues

This commit is contained in:
2023-09-05 23:08:22 -07:00
parent a6e4080746
commit a56d3b0b84
22 changed files with 506 additions and 179 deletions

View File

@@ -4,13 +4,14 @@
:refer [add-sorter-fields
apply-pagination
query2
observable-query
apply-sort-3
conn
merge-query
pull-many]]
[auto-ap.datomic.accounts :as d-accounts]
[auto-ap.datomic.vendors :as d-vendors]
[auto-ap.graphql.utils :refer [limited-clients]]
[auto-ap.graphql.utils :refer [limited-clients extract-client-ids]]
[auto-ap.time-utils :refer [next-dom]]
[clj-time.coerce :as coerce]
[clj-time.core :as time]
@@ -48,18 +49,27 @@
([args]
(raw-graphql-ids (dc/db conn) args))
([db args]
(let [query
(let [valid-clients (extract-client-ids (:clients args)
(:client-id args)
(when (:client-code args)
[:client/code (:client-code args)]))
query
(if (:exact-match-id args)
{:query {:find '[?e]
:in '[$ ?e [?c ...]]
:where '[[?e :invoice/client ?c]]}
:args [db
(:exact-match-id args)
(map :db/id (:clients args))]}
valid-clients]}
(cond-> {:query {:find []
:in ['$]
:where []}
:args [db]}
:in '[$ [?clients ?start ?end]]
:where '[
[(iol-ion.query/scan-invoices $ ?clients ?start ?end) [[?e _ ?sort-default] ...]]
]}
:args [db
[valid-clients
(some-> (:start (:date-range args)) coerce/to-date)
(some-> (:end (:date-range args)) coerce/to-date)]]}
(:client-id args)
@@ -81,15 +91,9 @@
: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]
'[(>= ?date ?start-date)]]}
:args [(coerce/to-date (:start (:date-range args)))]})
(:end (:date-range args)) (merge-query {:query {:in '[?end-date]
:where ['[?e :invoice/date ?date]
'[(<= ?date ?end-date)]]}
:args [(coerce/to-date (:end (:date-range args)))]})
(:start (:due-range args)) (merge-query {:query {:in '[?start-due]
:where ['[?e :invoice/due ?due]
@@ -100,10 +104,7 @@
:where ['[?e :invoice/due ?due]
'[(<= ?due ?end-due)]]}
:args [(coerce/to-date (:end (:due-range args)))]})
true
(merge-query {:query {:in ['[?xx ...]]
:where ['[?e :invoice/client ?xx]]}
:args [ (map :db/id (:clients args))]})
(:import-status args)
(merge-query {:query {:in ['?import-status]
@@ -175,10 +176,8 @@
"outstanding-balance" ['[?e :invoice/outstanding-balance ?sort-outstanding-balance]]}
args)
true
(merge-query {:query {:find ['?sort-default '?e ]
:where ['[?e :invoice/client]
'[?e :invoice/date ?sort-default]]}}) ))]
(->> (query2 query)
(merge-query {:query {:find ['?sort-default '?e ]}}) ))]
(->> (observable-query query)
(apply-sort-3 args)
(apply-pagination args)))))