From fa6de540f8e1b60ef0aa22e2c18a5735cfa06181 Mon Sep 17 00:00:00 2001 From: Cam Saul <cam@getluckybird.com> Date: Thu, 2 Apr 2015 15:08:54 -0700 Subject: [PATCH] test fix, I think --- src/metabase/api/meta/table.clj | 3 +- src/metabase/api/query.clj | 18 ++++---- test/metabase/api/meta/table_test.clj | 20 ++++----- test/metabase/api/query_test.clj | 60 +++++++++++++-------------- 4 files changed, 51 insertions(+), 50 deletions(-) diff --git a/src/metabase/api/meta/table.clj b/src/metabase/api/meta/table.clj index 40631598574..ac41906fd5d 100644 --- a/src/metabase/api/meta/table.clj +++ b/src/metabase/api/meta/table.clj @@ -48,7 +48,8 @@ (defendpoint GET "/:id/fields" "Get all `Fields` for `Table` with ID." [id] - (sel :many Field :table_id id)) + ;; TODO: READ CHECK ? + (sel :many Field :table_id id (order :name :ASC))) (defendpoint GET "/:id/query_metadata" [id] (->404 (sel :one Table :id id) diff --git a/src/metabase/api/query.clj b/src/metabase/api/query.clj index cb12288d457..153b13aa112 100644 --- a/src/metabase/api/query.clj +++ b/src/metabase/api/query.clj @@ -1,4 +1,5 @@ (ns metabase.api.query + "/api/query endpoints." (:require [clojure.data.csv :as csv] [korma.core :refer [where subselect fields order limit]] [compojure.core :refer [defroutes GET PUT POST DELETE]] @@ -28,15 +29,14 @@ [org f] {org Required, f FilterOptionAllOrMine} (read-check Org org) - (-> (case (or f :all) - :all (sel :many Query - (where (or (= :creator_id *current-user-id*) (> :public_perms common/perms-none))) - (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]}) - (order :name :ASC)) - :mine (sel :many Query :creator_id *current-user-id* - (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]}) - (order :name :ASC))) - (hydrate :creator :database))) + (let [all? (or (not f) (= f :all))] + (-> (sel :many Query + (where {:database_id [in (subselect Database (fields :id) (where {:organization_id org}))]}) + (where (or {:creator_id *current-user-id*} + (when all? + {:public_perms [> common/perms-none]}))) + (order :name :ASC)) + (hydrate :creator :database)))) (defn query-clone diff --git a/test/metabase/api/meta/table_test.clj b/test/metabase/api/meta/table_test.clj index 9aefcd55ae3..cc665322863 100644 --- a/test/metabase/api/meta/table_test.clj +++ b/test/metabase/api/meta/table_test.clj @@ -54,32 +54,32 @@ ((user->client :rasta) :get 200 (format "meta/table/%d" (table->id :venues)))) ;; ## GET /api/meta/table/:id/fields -(expect [(match-$ (sel :one Field :id (field->id :categories :name)) +(expect [(match-$ (sel :one Field :id (field->id :categories :id)) {:description nil :table_id (table->id :categories) - :special_type nil - :name "NAME" + :special_type "id" + :name "ID" :updated_at $ :active true - :id (field->id :categories :name) + :id (field->id :categories :id) :field_type "info" :position 0 :preview_display true :created_at $ - :base_type "TextField"}) - (match-$ (sel :one Field :id (field->id :categories :id)) + :base_type "BigIntegerField"}) + (match-$ (sel :one Field :id (field->id :categories :name)) {:description nil :table_id (table->id :categories) - :special_type "id" - :name "ID" + :special_type nil + :name "NAME" :updated_at $ :active true - :id (field->id :categories :id) + :id (field->id :categories :name) :field_type "info" :position 0 :preview_display true :created_at $ - :base_type "BigIntegerField"})] + :base_type "TextField"})] ((user->client :rasta) :get 200 (format "meta/table/%d/fields" (table->id :categories)))) ;; ## GET /api/meta/table/:id/query_metadata diff --git a/test/metabase/api/query_test.clj b/test/metabase/api/query_test.clj index b0e19a9d84c..12f01577040 100644 --- a/test/metabase/api/query_test.clj +++ b/test/metabase/api/query_test.clj @@ -187,7 +187,7 @@ ;; ## GET /api/query ;; Fetch Queries for the current Org (expect-eval-actual-first - (let [[query-1 query-2] (sel :many Query :database_id (:id @test-db) (order :id :ASC)) + (let [[query-1 query-2] (sel :many Query :database_id (:id @test-db) (order :name :ASC)) rasta (match-$ (fetch-user :rasta) {:common_name "Rasta Toucan" :date_joined $ @@ -206,38 +206,38 @@ :name "Test Database" :organization_id @org-id :description nil})] - #{(match-$ query-1 - {:creator rasta - :database_id (:id @test-db) - :name $ - :type "rawsql" - :creator_id (user->id :rasta) - :updated_at $ - :details {:timezone nil - :sql "SELECT COUNT(*) FROM VENUES;"} - :id $ - :database db - :version 1 - :public_perms 0 - :created_at $}) - (match-$ query-2 - {:creator rasta - :database_id (:id @test-db) - :name $ - :type "rawsql" - :creator_id (user->id :rasta) - :updated_at $ - :details {:timezone nil - :sql "SELECT COUNT(*) FROM VENUES;"} - :id $ - :database db - :version 1 - :public_perms 0 - :created_at $})}) + [(match-$ query-1 + {:creator rasta + :database_id (:id @test-db) + :name $ + :type "rawsql" + :creator_id (user->id :rasta) + :updated_at $ + :details {:timezone nil + :sql "SELECT COUNT(*) FROM VENUES;"} + :id $ + :database db + :version 1 + :public_perms 0 + :created_at $}) + (match-$ query-2 + {:creator rasta + :database_id (:id @test-db) + :name $ + :type "rawsql" + :creator_id (user->id :rasta) + :updated_at $ + :details {:timezone nil + :sql "SELECT COUNT(*) FROM VENUES;"} + :id $ + :database db + :version 1 + :public_perms 0 + :created_at $})]) (do (cascade-delete Query :database_id (:id @test-db)) (create-query) (create-query) - (set ((user->client :rasta) :get 200 "query" :org @org-id)))) + ((user->client :rasta) :get 200 "query" :org @org-id))) ;; ## POST /api/query/:id/csv -- GitLab