Simple account export
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user