new locations

This commit is contained in:
Bryce Covert
2021-09-29 18:04:07 -07:00
parent 4abbcdd170
commit c22c5ba9fe
4 changed files with 356 additions and 27 deletions

View File

@@ -53,37 +53,28 @@
(into [(d/db conn)] (clojure.edn/read-string (get query-params "args" "[]")))))))))
(defn put-query [id body note]
(s3/put-object :bucket-name (:data-bucket env)
:key (str "queries/" id)
:input-stream (io/make-input-stream (.getBytes body) {})
:metadata {:content-type "application/text"
:user-metadata {:note note}})
{:body {:query body
:id id
:results-url (str "/api/queries/" id "/results")
:csv-results-url (str "/api/queries/" id "/results/csv")
:json-results-url (str "/api/queries/" id "/results/json")}})
(def json-routes
(context "/queries" []
(POST "/" {:keys [query-params identity] :as request}
(assert-admin identity)
(let [uuid (str (UUID/randomUUID))
body (body-string request)]
(s3/put-object :bucket-name (:data-bucket env)
:key (str "queries/" uuid)
:input-stream (io/make-input-stream (.getBytes body) {})
:metadata {:content-type "application/text"
:user-metadata {:note (query-params "note")}})
{:body {:query body
:id uuid
:results-url (str "/api/queries/" uuid "/results")
:csv-results-url (str "/api/queries/" uuid "/results/csv")
:json-results-url (str "/api/queries/" uuid "/results/json")}})
)
(log/info "Note" (query-params "note"))
(put-query (str (UUID/randomUUID)) (body-string request) (query-params "note")))
(PUT "/:query-id" {:keys [query-params identity params] :as request}
(assert-admin identity)
(log/info "Note" (query-params "note"))
(let [body (body-string request)]
(s3/put-object :bucket-name (:data-bucket env)
:key (str "queries/" (:query-id params))
:input-stream (io/make-input-stream (.getBytes body) {})
:metadata {:content-type "application/text"
:user-metadata {:note (query-params "note")}})
{:body {:query body
:id (:query-id params)
:csv-results-url (str "/api/queries/" (:query-id params) "/results/csv")
:json-results-url (str "/api/queries/" (:query-id params) "/results/json")}}))
(put-query (:query-id params) (body-string request) (query-params "note")))
(GET "/:query-id" {:keys [query-params identity params]}
(assert-admin identity)
(let [{:keys [query-id]} params