made it possible to change accounts.

This commit is contained in:
Bryce Covert
2020-04-29 08:21:39 -07:00
parent 3f8ce25e7f
commit 8043fb0b81
8 changed files with 246 additions and 120 deletions

View File

@@ -2,12 +2,17 @@
(:require [datomic.api :as d]
[auto-ap.graphql.utils :refer [->graphql]]
[auto-ap.datomic :refer [uri merge-query]]))
(defn <-datomic [a]
(update a :account/applicability :db/ident))
(defn get-accounts
([]
(get-accounts {}))
([args]
(let [query (cond-> {:query {:find ['(pull ?e [* {:account/type [:db/ident :db/id]}])]
(let [query (cond-> {:query {:find ['(pull ?e [* {:account/type [:db/ident :db/id]
:account/applicability [:db/ident :db/id]
:account/client-overrides [:account-client-override/name
{:account-client-override/client [:db/id :client/name]}]}])]
:in ['$]
:where [['?e :account/name]]}
:args [(d/db (d/connect uri))]}
@@ -16,7 +21,21 @@
:args [(:account-set args)]}))]
(->>
(d/query query)
(map first)))))
(map first)
(map <-datomic)))))
(defn get-by-id [id]
(let [query {:query {:find ['(pull ?e [* {:account/type [:db/ident :db/id]
:account/applicability [:db/ident :db/id]
:account/client-overrides [:account-client-override/name
{:account-client-override/client [:db/id :client/name]}]}])]
:in ['$ '?e]}
:args [(d/db (d/connect uri) ) id]}]
(->>
(d/query query)
(map first)
(map <-datomic)
first)))
(defn get-account-by-numeric-code-and-sets [numeric-code sets]
(let [query (cond-> {:query {:find ['(pull ?e [* {:account/type [:db/ident :db/id]}])]
@@ -26,6 +45,7 @@
(->>
(d/query query)
(map first)
(map <-datomic)
(first))))
#_(get-account-by-numeric-code-and-sets 5110 nil)

View File

@@ -192,7 +192,42 @@
:db/doc "Overrides per-client"
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/many}]]}
:auto-ap/add-reset-rels {:txes-fn `reset-function}}]
:auto-ap/add-reset-rels {:txes-fn `reset-function}
:auto-ap/add-account-overrides {:txes [[{:db/ident :account/applicability
:db/doc ":global, :optional :customized"
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one}
{:db/ident :account-applicability/global
:db/doc "The account applies to all cutsomers"}
{:db/ident :account-applicability/optional
:db/doc "This account is optional"}
{:db/ident :account-applicability/customized
:db/doc "This account is customized per-customer"}
{:db/ident :account/client-overrides
:db/doc "Customizations per customer"
:db/valueType :db.type/ref
:db/isComponent true
:db/cardinality :db.cardinality/many}
{:db/ident :account-client-override/client
:db/doc "The client for the override"
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one}
{:db/ident :account-client-override/enabled
:db/doc "Does this apply?"
:db/valueType :db.type/boolean
:db/cardinality :db.cardinality/one}
{:db/ident :account-client-override/name
:db/doc "client override"
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one}]]} }]
(println "Conforming database...")
(c/ensure-conforms conn norms-map)
(when (not (seq args))