editing users uses datomic.

This commit is contained in:
BC
2018-09-20 23:17:45 -07:00
parent ebb9a191f1
commit 4a237a8224
8 changed files with 63 additions and 99 deletions

View File

@@ -2,11 +2,9 @@
(:require [auto-ap.graphql.utils :refer [->graphql <-graphql assert-can-see-company]]
[datomic.api :as d]
[clojure.edn :as edn]
[com.walmartlabs.lacinia :refer [execute]]
[com.walmartlabs.lacinia.executor :as executor]
[com.walmartlabs.lacinia.resolve :as resolve]
[auto-ap.datomic.checks :as d-checks]
[auto-ap.datomic.invoices :as d-invoices]
[auto-ap.datomic.vendors :as d-vendors]

View File

@@ -1,11 +1,8 @@
(ns auto-ap.graphql.invoices
(:require [auto-ap.graphql.utils :refer [->graphql assert-can-see-company]]
[auto-ap.db.vendors :as vendors]
[auto-ap.datomic.vendors :as d-vendors]
[auto-ap.datomic.invoices :as d-invoices]
[auto-ap.db.companies :as companies]
[auto-ap.db.invoices-expense-accounts :as invoices-expense-accounts]
[auto-ap.expense-accounts :as expense-accounts]
[auto-ap.time :refer [parse iso-date]]
[datomic.api :as d]
@@ -13,11 +10,6 @@
[clj-time.coerce :as coerce]
[clojure.set :as set]))
(defn -create-or-get-vendor [vendor-id vendor-name]
(if vendor-id
(vendors/get-by-id vendor-id)
(vendors/insert {:name vendor-name :default-expense-account 0})))
(defn add-invoice [context {{:keys [total invoice_number location client_id vendor_id vendor_name date] :as in} :invoice} value]
(when (seq (d-invoices/find-conflicting {:invoice/invoice-number invoice_number
:invoice/vendor (Long/parseLong vendor_id)

View File

@@ -5,23 +5,11 @@
[com.walmartlabs.lacinia :refer [execute]]
[com.walmartlabs.lacinia.executor :as executor]
[com.walmartlabs.lacinia.resolve :as resolve]
[auto-ap.db.transactions :as transactions]
[auto-ap.db.vendors :as vendors]
[auto-ap.db.checks :as checks]
[auto-ap.utils :refer [by]]
[auto-ap.db.companies :as companies]
[auto-ap.time :refer [parse normal-date]]))
(defn get-check-for-transaction [context args value]
(->graphql
(checks/get-by-id (:check_id value))))
(defn get-company-for-transaction [context args value]
(->graphql
(if-let [company-cache (:company-cache context)]
(company-cache (:company_id value))
(companies/get-by-id (:company_id value)))))
(defn get-transaction-page [context args value]
(let [args (assoc args :id (:id context))
transactions (map

View File

@@ -1,10 +1,30 @@
(ns auto-ap.graphql.users
(:require [auto-ap.db.users :as users]
(:require [auto-ap.datomic.users :as d-users]
[datomic.api :as d]
[auto-ap.datomic :refer [uri]]
[auto-ap.graphql.utils :refer [->graphql assert-admin]]))
(defn edit-user [context args value]
(assert-admin (:id context))
(users/update! (:edit_user args))
(->graphql
(users/get-by-id (:id (:edit_user args)))))
(def role->datomic-role {":none" :user-role/none
":admin" :user-role/admin
":user" :user-role/user})
(defn edit-user [context {:keys [edit_user] :as args} value]
(println args 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 %)) ))]
@(d/transact (d/connect uri)
(doto (-> [{: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)))
clojure.pprint/pprint))
(->graphql
(d-users/get-by-id (:id edit_user)))))