writes as csv.

This commit is contained in:
Bryce Covert
2021-05-21 17:06:33 -07:00
parent 4dc66f3d86
commit 8214b30a3e

View File

@@ -12,12 +12,20 @@
[auto-ap.logging :refer [error-event info-event warn-event]]
[clj-time.coerce :as coerce :refer [to-date]]
[clj-time.core :as time]
[clojure.data.csv :as csv]
[config.core :refer [env]]
[compojure.core :refer [context defroutes GET wrap-routes routes]]
[datomic.api :as d]
[ring.middleware.json :refer [wrap-json-response]]
[venia.core :as venia]
[yang.time :refer [time-it]]))
(defn wrap-csv-response [handler]
(fn [request]
(let [response (handler request)]
(println response)
(update response :body #(with-open [w (java.io.StringWriter.)]
(csv/write-csv w %)
(.toString w))))))
(def api-key-authed-routes
(context "/" []
@@ -238,10 +246,9 @@
(log/info "Executing raw query " (get query-params "query" ))
(into (list) (apply d/q (clojure.edn/read-string (get query-params "query" )) (into [(d/db conn)] (clojure.edn/read-string (get query-params "args" "[]"))))))))
(defroutes export-routes
(wrap-routes
(routes
api-key-authed-routes
(routes
(wrap-routes api-key-authed-routes
wrap-csv-response)
(wrap-routes admin-only-routes wrap-secure))
wrap-json-response))
(wrap-routes (wrap-routes admin-only-routes wrap-secure)
wrap-json-response)))