making ssr pages incorporate auth.

This commit is contained in:
2023-09-06 14:52:22 -07:00
parent 039f430cd9
commit fd7c0b62e7
5 changed files with 57 additions and 46 deletions

View File

@@ -8,14 +8,19 @@
merge-query
pull-many
query2]]
[auto-ap.graphql.utils :refer [can-see-client? limited-clients]]
[auto-ap.graphql.utils :refer [can-see-client? extract-client-ids]]
[clj-time.coerce :as c]
[datomic.api :as dc]))
(def default-read '[:db/id :report/client :report/created :report/url :report/name :report/creator])
(defn raw-graphql-ids [db args]
(let [query (cond-> {:query {:find []
(let [valid-clients (extract-client-ids (:clients args)
(:client-id args)
(when (:client-code args)
[:client/code (:client-code args)]))
query (cond-> {:query {:find []
:in ['$ ]
:where []}
:args [db]}
@@ -24,7 +29,7 @@
(seq (:clients args))
(merge-query {:query {:in ['[?xx ...]]
:where ['[?e :report/client ?xx]]}
:args [(set (map :db/id (:clients args)))]})
:args [valid-clients]})
(:sort args) (add-sorter-fields {"client" ['[?e :report/client ?c]
'[?c :client/name ?sort-client]]

View File

@@ -8,7 +8,7 @@
merge-query
pull-many
query2]]
[auto-ap.graphql.utils :refer [limited-clients]]
[auto-ap.graphql.utils :refer [extract-client-ids]]
[clj-time.coerce :as c]
[datomic.api :as dc]))
@@ -18,36 +18,37 @@
(-> x (update :yodlee-provider-account/last-updated c/from-date)))
(defn raw-graphql-ids [db args]
(->> (cond-> {:query {:find []
:in ['$]
:where ['[?e :yodlee-provider-account/id]]}
:args [db]}
(let [valid-clients (extract-client-ids (:clients args)
(:client-id args)
(when (:client-code args)
[:client/code (:client-code args)]))]
(->> (cond-> {:query {:find []
:in ['$ '[?xx ...]]
:where ['[?e :yodlee-provider-account/id]
'[?e :yodlee-provider-account/client ?xx]]}
:args [db valid-clients]}
(seq (:clients args))
(merge-query {:query {:in ['[?xx ...]]
:where ['[?e :yodlee-provider-account/client ?xx]]}
:args [(set (map :db/id (:clients args)))]})
(:client-id args)
(merge-query {:query {:in ['?client-id]
:where ['[?e :yodlee-provider-account/client ?client-id]]}
:args [ (:client-id args)]})
(:client-id args)
(merge-query {:query {:in ['?client-id]
:where ['[?e :yodlee-provider-account/client ?client-id]]}
:args [ (:client-id args)]})
(:client-code args)
(merge-query {:query {:in ['?client-code]
:where ['[?e :yodlee-provider-account/client ?client-id]
'[?client-id :client/code ?client-code]]}
:args [ (:client-code args)]})
(:client-code args)
(merge-query {:query {:in ['?client-code]
:where ['[?e :yodlee-provider-account/client ?client-id]
'[?client-id :client/code ?client-code]]}
:args [ (:client-code args)]})
(:sort args) (add-sorter-fields {"status" ['[?e :yodlee-provider-account/status ?sort-status]]}
args)
true
(merge-query {:query {:find ['?e ]
:where ['[?e :yodlee-provider-account/id]]}}) )
(:sort args) (add-sorter-fields {"status" ['[?e :yodlee-provider-account/status ?sort-status]]}
args)
true
(merge-query {:query {:find ['?e ]
:where ['[?e :yodlee-provider-account/id]]}}) )
(query2)
(apply-sort-3 args)
(apply-pagination args)))
(query2)
(apply-sort-3 args)
(apply-pagination args))))
(defn graphql-results [ids db _]

View File

@@ -1,7 +1,8 @@
(ns auto-ap.ssr.company.company-1099
(:require
[auto-ap.datomic :refer [apply-pagination-raw conn remove-nils]]
[auto-ap.graphql.utils :refer [assert-can-see-client is-admin?]]
[auto-ap.graphql.utils
:refer [assert-can-see-client extract-client-ids is-admin?]]
[auto-ap.ssr-routes :as ssr-routes]
[auto-ap.ssr.components :as com]
[auto-ap.ssr.grid-page-helper :as helper]
@@ -10,8 +11,7 @@
[bidi.bidi :as bidi]
[cemerick.url :as url]
[clojure.string :as str]
[datomic.api :as dc]
[iol-ion.query :refer [can-see-client?]]))
[datomic.api :as dc]))
(def vendor-read '[:db/id
:vendor/name
@@ -45,7 +45,10 @@
vendor-id)))
(defn get-1099-companies [user {:keys [clients] :as args}]
(let [
(let [valid-clients (extract-client-ids (:clients args)
(:client-id args)
(when (:client-code args)
[:client/code (:client-code args)]))
results (cond
clients
(dc/q '[:find
@@ -63,7 +66,7 @@
[?p :payment/amount ?a]
[?p :payment/vendor ?v]]
(dc/db conn)
(set (map :db/id clients))
valid-clients
vendor-read)
(is-admin? user)
@@ -100,7 +103,7 @@
[?p :payment/amount ?a]
[?p :payment/vendor ?v]]
(dc/db conn)
clients
valid-clients
vendor-read))
all (->> results
(filter (fn [[_ _ a]]

View File

@@ -9,7 +9,8 @@
pull-attr
pull-many-by-id
query2]]
[auto-ap.graphql.utils :refer [assert-can-see-client limited-clients]]
[auto-ap.graphql.utils
:refer [assert-can-see-client extract-client-ids]]
[auto-ap.logging :as alog]
[auto-ap.plaid.core :as p]
[auto-ap.ssr-routes :as ssr-routes]
@@ -36,20 +37,20 @@
:plaid-account/name]}])
(defn raw-graphql-ids [db args]
(let [query (cond-> {:query {:find []
:in ['$]
:where []}
:args [db]}
(println "ARGS " args)
(let [valid-clients (extract-client-ids (:clients args)
(:client-id args)
(when (:client-code args)
[:client/code (:client-code args)]))
query (cond-> {:query {:find []
:in ['$ '[?xx ...]]
:where ['[?e :plaid-item/client ?xx]]}
:args [db valid-clients]}
(:sort args) (add-sorter-fields {"external-id" ['[?e :plaid-item/external-id ?sort-external-id]]
"status" ['[?e :plaid-item/status ?sort-status]]}
args)
(:clients args)
(merge-query {:query {:in ['[?xx ...]]
:where ['[?e :plaid-item/client ?xx]]}
:args [ (set (map :db/id (:clients args)))]})
(:client-id args)
(merge-query {:query {:in '[?client-id]
:where ['[?e :plaid-item/client ?client-id]]}
@@ -142,7 +143,7 @@
:nav (com/company-aside-nav)
:id-fn :db/id
:fetch-page (fn [user args]
(get-page (assoc args :id user)))
(get-page (assoc args :id user :clients (:clients (:request args)))))
:breadcrumbs [[:a {:href (bidi/path-for ssr-routes/only-routes
:company)}
"My Company"]

View File

@@ -181,6 +181,7 @@
request
(com/page {:nav (:nav grid-spec)
:client-selection (:client-selection (:session request))
:clients (:clients request)
:client (:client request)
:identity (:identity request)}
(apply com/breadcrumbs {} (:breadcrumbs grid-spec))