Merge branch 'master' of bitbucket.org:brycecovertoperations/integreat

This commit is contained in:
Bryce
2023-05-26 22:01:35 -07:00
190 changed files with 6161 additions and 27 deletions

View File

@@ -14,7 +14,8 @@
[com.brunobonacci.mulog :as mu]
[datomic.api :as dc]
[clj-http.client :as client]
[auto-ap.solr :as solr]))
[auto-ap.solr :as solr]
[clojure.set :as set]))
(def full-read '[*
{:client/square-integration-status [:integration-status/message
@@ -149,34 +150,48 @@
(defn raw-graphql-ids [db args]
(let [query (cond-> {:query {:find []
:in ['$ ]
:where []}
:args [db]}
(let [name-like-ids (cond (not (str/blank? (:name-like args)))
(set (map (comp #(Long/parseLong %) :id)
(solr/query solr/impl "clients"
{"query" (format "_text_:(%s*)" (str/upper-case (solr/escape (:name-like args))))
"fields" "id"
"limit" 300})))
(not (str/blank? (:code args)))
(merge-query {:query {:in ['?client-code]
:where ['[?e :client/code ?client-code]]}
:args [(:code args)]})
(not (str/blank? (:code args)))
(set (map (comp #(Long/parseLong %) :id)
(solr/query solr/impl "clients" {"query" (format "_text_:(%s*)" (str/upper-case (solr/escape (:code args))))
"fields" "id"
"limit" 300})))
(not (str/blank? (:name-like args)))
(merge-query {:query {:in ['?name-like]
:where ['[?e :client/name ?name]
'[(clojure.string/includes? ?name ?name-like)]]}
:args [(:name-like args)]})
:else
nil)
valid-ids (cond
(and name-like-ids (limited-clients (:id args)))
(set/intersection name-like-ids (limited-clients (:id args)))
(limited-clients (:id args))
(merge-query {:query {:in ['[?e ...]]
:where []}
:args [(set (map :db/id (limited-clients (:id args))))]})
(limited-clients (:id args))
(limited-clients (:id args))
(:sort args) (add-sorter-fields {"name" ['[?e :client/name ?sort-name]]}
args)
name-like-ids
name-like-ids
true
(merge-query {:query {:find ['?sort-default '?e] :where ['[?e :client/name ?sort-default]]}}))]
:else
nil)
query (cond-> {:query {:find []
:in ['$ ]
:where []}
:args [db]}
valid-ids
(merge-query {:query {:in ['[?e ...]]}
:args [(set valid-ids)]})
(:sort args) (add-sorter-fields {"name" ['[?e :client/name ?sort-name]]}
args)
true
(merge-query {:query {:find ['?sort-default '?e] :where ['[?e :client/name ?sort-default]]}}))]
(->> (query2 query)
(apply-sort-3 (update args :sort conj {:sort-key "default-2" :asc true}))
(apply-pagination args))))