supports starting from scratch.

This commit is contained in:
Bryce Covert
2019-04-12 22:07:19 -07:00
parent 53c80e13ee
commit e02cb2f646
3 changed files with 26 additions and 10 deletions

View File

@@ -27,7 +27,11 @@
first)))
(defn find-or-insert! [{:keys [:user/provider :user/provider-id] :as new-user}]
(let [user (some-> {:query [:find '(pull ?e [*
(let [is-first-user? (not (seq (d/query {:query [:find '?e
:in '$
:where '[?e :user/provider]]
:args [(d/db (d/connect uri))]})))
user (some-> {:query [:find '(pull ?e [*
{:user/clients [*]}
{:user/role [:db/ident]}])
:in '$ '?provider '?provider-id
@@ -40,7 +44,9 @@
(update :user/role :db/ident))]
(if user
user
(let [new-user-trans @(d/transact (d/connect uri) [(assoc new-user :db/id "user")])]
(let [new-user-trans @(d/transact (d/connect uri) [(cond-> new-user
true (assoc :db/id "user")
is-first-user? (assoc :user/role :user-role/admin))])]
(println new-user-trans)
(get-by-id (-> new-user-trans :tempids (get "user")))))))