a bunch of cleanup to remove stuff

This commit is contained in:
2023-10-14 23:37:04 -07:00
parent f997c41abd
commit 3d9d02f76a
15 changed files with 33 additions and 801 deletions

View File

@@ -18,11 +18,6 @@
[iol-ion.tx :refer [random-tempid]]
[com.brunobonacci.mulog :as mu]))
(defn get-graphql [context args _]
(assert-admin (:id context))
(let [args (assoc args :id (:id context))
[accounts accounts-count ] (d-accounts/get-graphql (<-graphql args))]
(result->page accounts accounts-count :accounts args)))
(defn get-all-graphql [context args _]
(assert-admin (:id context))
@@ -35,63 +30,6 @@
(let [result (d-accounts/get-for-vendor (:vendor_id args) (:client_id args))]
(->graphql (d-accounts/clientize result (:client_id args)))))
(defn upsert-account [context args _]
(let [{{:keys [id client-overrides numeric-code location applicability account-set name invoice-allowance vendor-allowance type]} :account} (<-graphql args)]
(when-not id
(when (seq (dc/q {:find ['?e]
:in '[$ ?account-set ?numeric-code]
:where ['[?e :account/account-set ?account-set]
'[?e :account/numeric-code ?numeric-code]]}
(dc/db conn) account-set numeric-code))
(throw (ex-info (str "Account set " account-set " already has an account for code " numeric-code)
{} ))))
(let [result (audit-transact [[:upsert-entity
(cond-> {:db/id (or id "new-account")
:account/name name
:account/search-terms name
:account/type (keyword "account-type" (clojure.core/name type))
:account/applicability (or (enum->keyword applicability "account-applicability")
:account-applicability/global)
:account/invoice-allowance (some-> invoice-allowance (enum->keyword "allowance"))
:account/vendor-allowance (some-> vendor-allowance (enum->keyword "allowance"))
:account/default-allowance :allowance/allowed
:account/account-set account-set
:account/location location
:account/numeric-code numeric-code
:account/code (str numeric-code)
:account/client-overrides (mapv
(fn [client-override]
{:db/id (or (:id client-override) (random-tempid))
:account-client-override/client (:client-id client-override)
:account-client-override/name (:name client-override)
:account-client-override/search-terms (:name client-override)})
client-overrides)}
id (dissoc :account/numeric-code :account/code))]]
(:id context))
updated-account (d-accounts/get-by-id (or id (get-in result [:tempids "new-account"])))]
(mu/log ::account-updated :account updated-account)
(solr/index-documents-raw solr/impl
"accounts"
(into [{"id" (:db/id updated-account)
"account_id" (:db/id updated-account)
"name" (:account/name updated-account)
"numeric_code" (:account/numeric-code updated-account)
"location" (:account/location updated-account)
"applicability" (clojure.core/name (:account/applicability updated-account))}]
(for [o (:account/client-overrides updated-account)]
{"id" (:db/id o)
"account_id" (:db/id updated-account)
"name" (:account-client-override/name o)
"numeric_code" (:account/numeric-code updated-account)
"location" (:account/location updated-account)
"applicability" (clojure.core/name (:account/applicability updated-account))
"client_id" (:db/id (:account-client-override/client o))
"account_client_override_id" (:db/id o)}))
)
(->graphql
updated-account))))
(def search-pattern [:db/id
:account/numeric-code
:account/location
@@ -207,17 +145,3 @@
"numeric_code" (:account/numeric-code result)
"location" (:account/location result)
"applicability" (name (:db/ident (:account/applicability result)))})))
#_(dc/transact conn
[{:db/ident :account-client-override/k2
:db/valueType :db.type/tuple
:db/tupleAttrs [:account/_client-overrides :account-client-override/client ]
:db/cardinality :db.cardinality/one
:db/unique :db.unique/identity}])
#_(dc/q '[:find ?o
:where [_ :account-client-override/k ?o]]
(dc/db conn))
#_(dc/pull (dc/db conn) '[*] [:db/ident :account-client-override/k])

View File

@@ -1,28 +0,0 @@
(ns auto-ap.graphql.users
(:require [auto-ap.datomic :refer [audit-transact]]
[auto-ap.datomic.users :as d-users]
[auto-ap.graphql.utils :refer [->graphql assert-admin]]))
(def role->datomic-role {:none :user-role/none
:admin :user-role/admin
:power_user :user-role/power-user
:manager :user-role/manager
:user :user-role/user})
(defn edit-user [context {:keys [edit_user]} _]
(assert-admin (:id context))
(let [user (d-users/get-by-id (:id edit_user))
new-clients (set (map #(Long/parseLong %) (:clients edit_user)))
clients-to-remove (->> (:user/clients user)
(map :db/id)
(filter #(not (new-clients %)) ))]
(audit-transact (-> [{:db/id (:db/id user)
:user/role (role->datomic-role (:role edit_user))
:user/clients new-clients}]
(into (map (fn [c] [:db/retract (:db/id user) :user/clients c]) clients-to-remove)))
(:id context))
(->graphql
(d-users/get-by-id (:id edit_user)))))