Simple account export
This commit is contained in:
@@ -35,6 +35,15 @@
|
|||||||
|
|
||||||
#_(first)))
|
#_(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]
|
(defn assoc-image [code image]
|
||||||
@(d/transact (d/connect uri)
|
@(d/transact (d/connect uri)
|
||||||
[{ :client/code code
|
[{ :client/code code
|
||||||
|
|||||||
@@ -65,6 +65,34 @@
|
|||||||
(first (d-ledger/get-graphql {:count Integer/MAX_VALUE
|
(first (d-ledger/get-graphql {:count Integer/MAX_VALUE
|
||||||
:client-code (query-params "client-code")}))))
|
: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]}
|
(GET "/transactions/export" {:keys [query-params identity]}
|
||||||
(assert-admin identity)
|
(assert-admin identity)
|
||||||
(let [[transactions] (d-transactions/get-graphql {:client-code (query-params "client-code")
|
(let [[transactions] (d-transactions/get-graphql {:client-code (query-params "client-code")
|
||||||
|
|||||||
Reference in New Issue
Block a user