37 lines
905 B
Clojure
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)))
|
|
|
|
|
|
|
|
|