From 8214b30a3e481f4aeb3e063709b34e2d73a247a0 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 21 May 2021 17:06:33 -0700 Subject: [PATCH] writes as csv. --- src/clj/auto_ap/routes/exports.clj | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/clj/auto_ap/routes/exports.clj b/src/clj/auto_ap/routes/exports.clj index 4854a5d9..6a5618c6 100644 --- a/src/clj/auto_ap/routes/exports.clj +++ b/src/clj/auto_ap/routes/exports.clj @@ -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)))