Files
integreat/src/clj/auto_ap/datomic/bank_accounts.clj
2018-11-12 08:26:47 -08:00

37 lines
905 B
Clojure

(ns auto-ap.datomic.bank-accounts
(:require [datomic.api :as d]
[auto-ap.datomic :refer [uri]]
[clj-time.coerce :as c]
[clojure.set :refer [rename-keys]]))
(defn add-arg [query name value where & rest]
(let [query (-> query
(update :args conj value)
(update-in [:query :in] conj name)
(update-in [:query :where] conj where))]
(reduce #(update-in %1 [:query :where] conj %2) query rest)))
(def default-read '(pull ?e [*]))
(defn <-datomic [x]
(->> x
(map #(update % :bank-account/type :db/ident))
))
(defn get-by-id [id]
(->>
(d/query (-> {:query {:find [default-read]
:in ['$]
:where []}
:args [(d/db (d/connect uri))]}
(add-arg '?e id ['?e])))
(map first)
(<-datomic)
(first)))