Simple account export

This commit is contained in:
Bryce Covert
2020-05-21 06:17:58 -07:00
parent d30dfb5e34
commit 4429fa384a
2 changed files with 37 additions and 0 deletions

View File

@@ -35,6 +35,15 @@
#_(first)))
(defn code->id [code]
(->>
(d/query (-> {:query {:find ['?e]
:in ['$ '?code]
:where [['?e :client/code '?code ]]}
:args [(d/db (d/connect uri)) code]}))
(first)
(first)))
(defn assoc-image [code image]
@(d/transact (d/connect uri)
[{ :client/code code

View File

@@ -65,6 +65,34 @@
(first (d-ledger/get-graphql {:count Integer/MAX_VALUE
:client-code (query-params "client-code")}))))
(GET "/accounts/export" {:keys [query-params identity]}
(assert-admin identity)
(let [client-id (d-clients/code->id (query-params "client-code"))
query [[:accounts
[:id :numeric_code :type :applicability :location :name [:client_overrides [:name [:client [:id :code :name]]]]]]]
all-accounts (graphql/query identity (venia/graphql-query {:venia/queries (->graphql query)}))]
(list (transduce
(comp
(filter (fn [a]
(let [overriden-clients (set (map (comp :id :client) (:client-overrides a)))]
(or (= :global (:applicability a))
(overriden-clients (str client-id))))))
(map (fn [a]
(let [client->name (reduce
(fn [override co]
(assoc override (str (:id (:client co))) (:name co)))
{}
(:client-overrides a))]
(-> a
(assoc :global-name (:name a))
(assoc :client-name (client->name (str client-id) (:name a)))
(dissoc :client-overrides))))))
conj
[]
(:accounts (:data all-accounts))))))
(GET "/transactions/export" {:keys [query-params identity]}
(assert-admin identity)
(let [[transactions] (d-transactions/get-graphql {:client-code (query-params "client-code")