Makes integreat run on datomic cloud
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
(ns auto-ap.datomic.users
|
||||
(:require
|
||||
[auto-ap.datomic :refer [uri]]
|
||||
[datomic.api :as d]))
|
||||
[auto-ap.datomic :refer [conn]]
|
||||
[datomic.client.api :as dc]))
|
||||
|
||||
(defn add-arg [query name value where & rest]
|
||||
(let [query (-> query
|
||||
@@ -16,35 +16,35 @@
|
||||
{:user/role [:db/ident]}])]
|
||||
:in ['$]
|
||||
:where []}
|
||||
:args [(d/db (d/connect uri))]}
|
||||
:args [(dc/db conn)]}
|
||||
(add-arg '?e id ['?e]))]
|
||||
|
||||
(->> (d/query query)
|
||||
(->> (dc/q query)
|
||||
(map first)
|
||||
(map #(update % :user/role :db/ident))
|
||||
first)))
|
||||
|
||||
(defn find-or-insert! [{:keys [:user/provider :user/provider-id] :as new-user}]
|
||||
(let [is-first-user? (not (seq (d/query {:query [:find '?e
|
||||
(let [is-first-user? (not (seq (dc/q {:query [:find '?e
|
||||
:in '$
|
||||
:where '[?e :user/provider]]
|
||||
:args [(d/db (d/connect uri))]})))
|
||||
:args [(dc/db conn)]})))
|
||||
user (some-> {:query [:find '(pull ?e [*
|
||||
{:user/clients [*]}
|
||||
{:user/role [:db/ident]}])
|
||||
:in '$ '?provider '?provider-id
|
||||
:where '[?e :user/provider ?provider]
|
||||
'[?e :user/provider-id ?provider-id]]
|
||||
:args [(d/db (d/connect uri)) provider provider-id]}
|
||||
(d/query)
|
||||
:args [(dc/db conn) provider provider-id]}
|
||||
(dc/q)
|
||||
first
|
||||
first
|
||||
(update :user/role :db/ident))]
|
||||
(if user
|
||||
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))])]
|
||||
(let [new-user-trans (dc/transact conn {:tx-data [(cond-> new-user
|
||||
true (assoc :db/id "user")
|
||||
is-first-user? (assoc :user/role :user-role/admin))]})]
|
||||
(get-by-id (-> new-user-trans :tempids (get "user")))))))
|
||||
|
||||
(defn raw-graphql [_]
|
||||
@@ -53,9 +53,9 @@
|
||||
{:user/role [:db/ident]}])]
|
||||
:in ['$]
|
||||
:where ['[?e :user/role]]}
|
||||
:args [(d/db (d/connect uri))]})]
|
||||
:args [(dc/db conn)]})]
|
||||
|
||||
(->> (d/query query)
|
||||
(->> (dc/q query)
|
||||
(map first)
|
||||
(map #(update % :user/role :db/ident))
|
||||
)))
|
||||
|
||||
Reference in New Issue
Block a user