Files
integreat/src/clj/auto_ap/datomic/accounts.clj
2019-08-31 07:08:57 -07:00

32 lines
1.3 KiB
Clojure

(ns auto-ap.datomic.accounts
(:require [datomic.api :as d]
[auto-ap.graphql.utils :refer [->graphql]]
[auto-ap.datomic :refer [uri merge-query]]))
(defn get-accounts
([]
(get-accounts {}))
([args]
(let [query (cond-> {:query {:find ['(pull ?e [* {:account/type [:db/ident :db/id]}])]
:in ['$]
:where [['?e :account/name]]}
:args [(d/db (d/connect uri))]}
(:account-set args) (merge-query {:query {:in ['?account-set]
:where [['?e :account/account-set '?account-set]]}
:args [(:account-set args)]}))]
(->>
(d/query query)
(map 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]}])]
:in ['$ '?numeric-code]
:where ['[?e :account/numeric-code ?numeric-code]]}
:args [(d/db (d/connect uri)) numeric-code]})]
(->>
(d/query query)
(map first)
(first))))
#_(get-account-by-numeric-code-and-sets 5110 nil)