diff --git a/src/metabase/api/automagic_dashboards.clj b/src/metabase/api/automagic_dashboards.clj index 8d0ec3934f5ce96e429aeeef61b8981ef6f5f01a..a749b8ffba375d8e798124ed6d0df7988af1cd5c 100644 --- a/src/metabase/api/automagic_dashboards.clj +++ b/src/metabase/api/automagic_dashboards.clj @@ -1,5 +1,6 @@ (ns metabase.api.automagic-dashboards - (:require [cheshire.core :as json] + (:require [buddy.core.codecs :as codecs] + [cheshire.core :as json] [compojure.core :refer [GET POST]] [metabase.api [card :as card.api] @@ -22,6 +23,9 @@ [db :as db] [hydrate :refer [hydrate]]])) +(def ^:private ^{:arglists '([s])} decode-base64-json + (comp json/decode codecs/bytes->str codec/base64-decode)) + (api/defendpoint GET "/database/:id/candidates" "Return a list of candidates for automagic dashboards orderd by interestingness." [id] @@ -57,23 +61,19 @@ api/check-404 (magic/automagic-dashboard (rules/load-rule (str prefix "/" rule ".yaml"))))) -(api/defendpoint GET "/question/:id/:cell-query" +(api/defendpoint GET "/question/:id/cell/:cell-query" "Return an automagic dashboard analyzing cell in question with id `id` defined by query `cell-querry`." [id cell-query] - (-> (card.api/adhoc-query {:query {:filter (-> cell-query - codec/base64-decode - json/decode)}}) + (-> (card.api/adhoc-query {:query {:filter (decode-base64-json cell-query)}}) (magic/inject-segment (-> id Card api/check-404)) magic/automagic-dashboard)) -(api/defendpoint GET "/question/:id/:cell-query/:prefix/:rule" +(api/defendpoint GET "/question/:id/cell/:cell-query/:prefix/:rule" "Return an automagic dashboard analyzing cell in question with id `id` defined by query `cell-querry` using rule `rule`." [id cell-query prefix rule] - (-> (card.api/adhoc-query {:query {:filter (-> cell-query - codec/base64-decode - json/decode)}}) + (-> (card.api/adhoc-query {:query {:filter (decode-base64-json cell-query)}}) (magic/inject-segment (-> id Card api/check-404)) (magic/automagic-dashboard (rules/load-rule (str prefix "/" rule ".yaml"))))) @@ -96,8 +96,7 @@ "Return an automagic dashboard analyzing ad hoc query." [query] (-> query - codec/base64-decode - json/decode + decode-base64-json card.api/adhoc-query magic/automagic-analysis)) diff --git a/src/metabase/automagic_dashboards/populate.clj b/src/metabase/automagic_dashboards/populate.clj index ecca1e71fe6ef7be85f329e12dc2e532d896c4d5..be4b3b5b27540d5e0f674c42e6dc136139d1adf1 100644 --- a/src/metabase/automagic_dashboards/populate.clj +++ b/src/metabase/automagic_dashboards/populate.clj @@ -32,7 +32,7 @@ (or (db/select-one 'Collection :name "Automatically Generated Questions") (create-collection! "Automatically Generated Questions" - "#000000" + "#509EE3" "Cards used in automatically generated dashboards.")))) (defn- add-card