progress on making saving work better for accounts.

This commit is contained in:
Bryce Covert
2020-09-02 07:57:56 -07:00
parent 0297304cfc
commit f40ff431dd
7 changed files with 100 additions and 97 deletions

View File

@@ -11,7 +11,8 @@
([args]
(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-overrides [:db/id
:account-client-override/name
{:account-client-override/client [:db/id :client/name]}]}])]
:in ['$]
:where [['?e :account/name]]}
@@ -27,7 +28,8 @@
(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-overrides [:db/id
:account-client-override/name
{:account-client-override/client [:db/id :client/name]}]}])]
:in ['$ '?e]}
:args [(d/db (d/connect uri) ) id]}]

View File

@@ -2,7 +2,8 @@
(:require [datomic.api :as d]
[auto-ap.datomic.accounts :as d-accounts]
[auto-ap.graphql.utils :refer [->graphql <-graphql enum->keyword] ]
[auto-ap.datomic :refer [uri merge-query remove-nils]]))
[auto-ap.datomic :refer [uri merge-query remove-nils audit-transact]]
[clojure.tools.logging :as log]))
@@ -22,8 +23,7 @@
{} ))))
(let [original (if id (d/entity (d/db (d/connect uri)) id))
result @(d/transact (d/connect uri)
(cond->
result (audit-transact (cond->
[(remove-nils
{:db/id (or id "new-account")
:account/name name
@@ -39,10 +39,12 @@
(mapv
(fn [client-override]
(remove-nils
{:account-client-override/client (:client-id client-override)
{:db/id (:id client-override)
:account-client-override/client (:client-id client-override)
:account-client-override/name (:name client-override)}))
client-overrides)]]
(and (not location) (:account/location original)) (conj [:db/retract (or id "new-account") :account/location (:account/location original)])))]
(and (not location) (:account/location original)) (conj [:db/retract (or id "new-account") :account/location (:account/location original)]))
(:id context))]
(->graphql
(d-accounts/get-by-id (or id (get-in result [:tempids "new-account"])))))))