Skip to content
Snippets Groups Projects
Commit 899ab30a authored by Cam Saül's avatar Cam Saül
Browse files

Minor cleanup for endpoint changes from Excel download PR

parent 4237630e
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
"/api/dataset endpoints."
(:require [cheshire.core :as json]
[clojure.data.csv :as csv]
[clojure.string :as string]
[clojure.string :as str]
[compojure.core :refer [POST]]
[dk.ative.docjure.spreadsheet :as spreadsheet]
[metabase
......@@ -106,7 +106,12 @@
{:status 500
:body (:error response)})))
(def ^:private export-format-regex (re-pattern (str "(" (string/join "|" (keys export-formats)) ")")))
(def export-format-regex
"Regex for matching valid export formats (e.g., `json`) for queries.
Inteneded for use in an endpoint definition:
(api/defendpoint POST [\"/:export-format\", :export-format export-format-regex]"
(re-pattern (str "(" (str/join "|" (keys export-formats)) ")")))
(api/defendpoint POST ["/:export-format", :export-format export-format-regex]
"Execute a query and download the result data as a file in the specified format."
......
......@@ -276,7 +276,7 @@
(run-query-for-unsigned-token (eu/unsign token) query-params))
(api/defendpoint GET "/card/:token/query/:export-format"
(api/defendpoint GET ["/card/:token/query/:export-format", :export-format dataset-api/export-format-regex]
"Like `GET /api/embed/card/query`, but returns the results as a file in the specified format."
[token export-format & query-params]
{export-format dataset-api/ExportFormat}
......
......@@ -138,8 +138,8 @@
(if-not (values-are-valid-json? (take driver/max-sync-lazy-seq-results (driver/field-values-lazy-seq driver field)))
field-stats
(do
(log/debug (u/format-color 'green "Field '%s' looks like it contains valid JSON objects. Setting special_type to :type/JSON." (field/qualified-name field)))
(assoc field-stats :special-type :type/JSON, :preview-display false)))))
(log/debug (u/format-color 'green "Field '%s' looks like it contains valid JSON objects. Setting special_type to :type/SerializedJSON." (field/qualified-name field)))
(assoc field-stats :special-type :type/SerializedJSON, :preview-display false)))))
(defn- values-are-valid-emails?
"`true` if at every item in VALUES is `nil` or a valid email, and at least one of those is non-nil."
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment