From 102899350fea8794d8ba06fcb4ac8367dab65c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cam=20Sau=CC=88l?= <cammsaul@gmail.com> Date: Tue, 7 Jul 2015 05:38:50 -0700 Subject: [PATCH] use the new (Entity id) shorthand instead of (sel :one Entity :id id) when possible --- src/metabase/api/card.clj | 4 +-- src/metabase/api/dash.clj | 4 +-- src/metabase/api/meta/db.clj | 6 ++-- src/metabase/api/meta/field.clj | 10 +++---- src/metabase/api/meta/table.clj | 8 +++--- src/metabase/api/notify.clj | 2 +- src/metabase/api/user.clj | 8 +++--- src/metabase/models/card.clj | 2 +- src/metabase/models/dashboard.clj | 2 +- test/metabase/api/card_test.clj | 2 +- test/metabase/api/dash_test.clj | 8 +++--- test/metabase/api/meta/db_test.clj | 8 +++--- test/metabase/api/meta/field_test.clj | 6 ++-- test/metabase/api/meta/table_test.clj | 34 +++++++++++------------ test/metabase/api/session_test.clj | 2 +- test/metabase/driver/generic_sql_test.clj | 2 +- test/metabase/driver/sync_test.clj | 8 +++--- test/metabase/test/data/datasets.clj | 4 +-- test/metabase/test_setup.clj | 2 +- 19 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/metabase/api/card.clj b/src/metabase/api/card.clj index 54f28cc9d41..5957d4f801d 100644 --- a/src/metabase/api/card.clj +++ b/src/metabase/api/card.clj @@ -57,7 +57,7 @@ (defendpoint GET "/:id" "Get `Card` with ID." [id] - (->404 (sel :one Card :id id) + (->404 (Card id) read-check (hydrate :creator :can_read :can_write))) @@ -75,7 +75,7 @@ :name name :public_perms public_perms :visualization_settings visualization_settings)) - (sel :one Card :id id)) + (Card id)) (defendpoint DELETE "/:id" "Delete a `Card`." diff --git a/src/metabase/api/dash.clj b/src/metabase/api/dash.clj index 742cfb841db..a05a07715a7 100644 --- a/src/metabase/api/dash.clj +++ b/src/metabase/api/dash.clj @@ -36,7 +36,7 @@ (defendpoint GET "/:id" "Get `Dashboard` with ID." [id] - (let-404 [db (-> (sel :one Dashboard :id id) + (let-404 [db (-> (Dashboard id) read-check (hydrate :creator [:ordered_cards [:card :creator]] :can_read :can_write))] {:dashboard db})) ; why is this returned with this {:dashboard} wrapper? @@ -50,7 +50,7 @@ :description description :name name :public_perms public_perms)) - (sel :one Dashboard :id id)) + (Dashboard id)) (defendpoint DELETE "/:id" "Delete a `Dashboard`." diff --git a/src/metabase/api/meta/db.clj b/src/metabase/api/meta/db.clj index 49c9a4c898c..2f9d7b04456 100644 --- a/src/metabase/api/meta/db.clj +++ b/src/metabase/api/meta/db.clj @@ -64,7 +64,7 @@ (defendpoint GET "/:id" "Get `Database` with ID." [id] - (check-404 (sel :one Database :id id))) + (check-404 (Database id))) (defendpoint PUT "/:id" "Update a `Database`." @@ -75,7 +75,7 @@ :name name :engine engine :details details)) - (sel :one Database :id id)) + (Database id)) (defendpoint DELETE "/:id" "Delete a `Database`." @@ -126,7 +126,7 @@ (defendpoint POST "/:id/sync" "Update the metadata for this `Database`." [id] - (let-404 [db (sel :one Database :id id)] + (let-404 [db (Database id)] (write-check db) (future (driver/sync-database! db))) ; run sync-tables asynchronously {:status :ok}) diff --git a/src/metabase/api/meta/field.clj b/src/metabase/api/meta/field.clj index 36c6f6cbd7d..eb37aa20e4e 100644 --- a/src/metabase/api/meta/field.clj +++ b/src/metabase/api/meta/field.clj @@ -29,7 +29,7 @@ (defendpoint GET "/:id" "Get `Field` with ID." [id] - (->404 (sel :one Field :id id) + (->404 (Field id) read-check (hydrate [:table :db]))) @@ -43,12 +43,12 @@ :special_type special_type} ; but field_type and preview_display must be replaced (when field_type {:field_type field_type}) ; with new non-nil values (when (not (nil? preview_display)) {:preview_display preview_display})))) - (sel :one Field :id id)) + (Field id)) (defendpoint GET "/:id/summary" "Get the count and distinct count of `Field` with ID." [id] - (let-404 [field (sel :one Field :id id)] + (let-404 [field (Field id)] (read-check field) [[:count (metadata/field-count field)] [:distincts (metadata/field-distinct-count field)]])) @@ -79,7 +79,7 @@ "If `Field`'s special type is `category`/`city`/`state`/`country`, or its base type is `BooleanField`, return all distinct values of the field, and a map of human-readable values defined by the user." [id] - (let-404 [field (sel :one Field :id id)] + (let-404 [field (Field id)] (read-check field) (if-not (field-should-have-field-values? field) {:values {} :human_readable_values {}} @@ -91,7 +91,7 @@ or whose base type is `BooleanField`." [id :as {{:keys [fieldId values_map]} :body}] ; WTF is the reasoning behind client passing fieldId in POST params? {values_map [Required Dict]} - (let-404 [field (sel :one Field :id id)] + (let-404 [field (Field id)] (write-check field) (check (field-should-have-field-values? field) [400 "You can only update the mapped values of a Field whose 'special_type' is 'category'/'city'/'state'/'country' or whose 'base_type' is 'BooleanField'."]) diff --git a/src/metabase/api/meta/table.clj b/src/metabase/api/meta/table.clj index b4f3e4c653d..7df3b7f2329 100644 --- a/src/metabase/api/meta/table.clj +++ b/src/metabase/api/meta/table.clj @@ -30,7 +30,7 @@ (defendpoint GET "/:id" "Get `Table` with ID." [id] - (->404 (sel :one Table :id id) + (->404 (Table id) read-check (hydrate :db :pk_field))) @@ -43,7 +43,7 @@ :entity_name entity_name :entity_type entity_type :description description)) - (sel :one Table :id id)) + (Table id)) (defendpoint GET "/:id/fields" "Get all `Fields` for `Table` with ID." @@ -60,7 +60,7 @@ will any of its corresponding values be returned. (This option is provided for use in the Admin Edit Metadata page)." [id include_sensitive_fields] {include_sensitive_fields String->Boolean} - (->404 (sel :one Table :id id) + (->404 (Table id) read-check (hydrate :db [:fields :target] :field_values) (update-in [:fields] (if include_sensitive_fields @@ -82,7 +82,7 @@ (defendpoint POST "/:id/sync" "Re-sync the metadata for this `Table`." [id] - (let-404 [table (sel :one Table :id id)] + (let-404 [table (Table id)] (write-check table) ;; run the task asynchronously (future (driver/sync-table! table))) diff --git a/src/metabase/api/notify.clj b/src/metabase/api/notify.clj index f155321920c..c05576c2738 100644 --- a/src/metabase/api/notify.clj +++ b/src/metabase/api/notify.clj @@ -12,7 +12,7 @@ "Notification about a potential schema change to one of our `Databases`. Caller can optionally specify a `:table_id` or `:table_name` in the body to limit updates to a single `Table`." [id :as {{:keys [table_id table_name] :as body} :body}] - (let-404 [database (sel :one Database :id id)] + (let-404 [database (Database id)] (cond table_id (when-let [table (sel :one Table :db_id id :id (int table_id))] (future (driver/sync-table! table))) diff --git a/src/metabase/api/user.clj b/src/metabase/api/user.clj index b6f3e2674a6..21eaa3fc21f 100644 --- a/src/metabase/api/user.clj +++ b/src/metabase/api/user.clj @@ -41,9 +41,9 @@ :last_name last_name :is_active true :is_superuser false) - (sel :one User :id (:id existing-user))) + (User (:id existing-user))) ;; account already exists and is active, so do nothing and just return the account - :else (sel :one User :id (:id existing-user))) + :else (User (:id existing-user))) (hydrate :user :organization)))) @@ -76,7 +76,7 @@ :is_superuser (if (:is_superuser @*current-user*) is_superuser nil))) - (sel :one User :id id)) + (User id)) (defendpoint PUT "/:id/password" @@ -88,7 +88,7 @@ (let-404 [user (sel :one [User :password_salt :password] :id id :is_active true)] (checkp (creds/bcrypt-verify (str (:password_salt user) old_password) (:password user)) "old_password" "Invalid password")) (set-user-password id password) - (sel :one User :id id)) + (User id)) (defendpoint DELETE "/:id" diff --git a/src/metabase/models/card.clj b/src/metabase/models/card.clj index 9c2ebd5cdea..6c7cab212ed 100644 --- a/src/metabase/models/card.clj +++ b/src/metabase/models/card.clj @@ -33,7 +33,7 @@ timestamped] (post-select [_ {:keys [creator_id] :as card}] - (map->CardInstance (assoc card :creator (delay (sel :one User :id creator_id))))) + (map->CardInstance (assoc card :creator (delay (User creator_id))))) (pre-cascade-delete [_ {:keys [id]}] (cascade-delete 'metabase.models.dashboard-card/DashboardCard :card_id id) diff --git a/src/metabase/models/dashboard.clj b/src/metabase/models/dashboard.clj index 6c0ae81d38d..bfc98e74795 100644 --- a/src/metabase/models/dashboard.clj +++ b/src/metabase/models/dashboard.clj @@ -21,7 +21,7 @@ (post-select [_ {:keys [id creator_id description] :as dash}] (-> dash - (assoc :creator (delay (sel :one User :id creator_id)) + (assoc :creator (delay (User creator_id)) :description (u/jdbc-clob->str description) :ordered_cards (delay (sel :many DashboardCard :dashboard_id id (order :created_at :asc)))) map->DashboardInstance)) diff --git a/test/metabase/api/card_test.clj b/test/metabase/api/card_test.clj index 93ab8edbf0f..2b017fd5faf 100644 --- a/test/metabase/api/card_test.clj +++ b/test/metabase/api/card_test.clj @@ -122,7 +122,7 @@ (expect-eval-actual-first nil (let [{:keys [id]} (post-card (random-name))] ((user->client :rasta) :delete 204 (format "card/%d" id)) - (sel :one Card :id id))) + (Card id))) ;; # CARD FAVORITE STUFF diff --git a/test/metabase/api/dash_test.clj b/test/metabase/api/dash_test.clj index 0f68968cd0a..f8434d9a2e4 100644 --- a/test/metabase/api/dash_test.clj +++ b/test/metabase/api/dash_test.clj @@ -44,8 +44,8 @@ {:description nil :can_read true :ordered_cards [] - :creator (-> (sel :one User :id (user->id :rasta)) - (select-keys [:email :first_name :last_login :is_superuser :id :last_name :date_joined :common_name])) + :creator (-> (User (user->id :rasta)) + (select-keys [:email :first_name :last_login :is_superuser :id :last_name :date_joined :common_name])) :can_write true :organization_id nil :name $ @@ -99,7 +99,7 @@ (expect-let [{:keys [id]} (create-dash (random-name))] nil (do ((user->client :rasta) :delete 204 (format "dash/%d" id)) - (sel :one Dashboard :id id))) + (Dashboard id))) ;; # DASHBOARD CARD ENDPOINTS @@ -115,7 +115,7 @@ {:sizeX 2 :card (match-$ card {:description nil - :creator (-> (sel :one User :id (user->id :rasta)) + :creator (-> (User (user->id :rasta)) (select-keys [:date_joined :last_name :id :is_superuser :last_login :first_name :email :common_name])) :organization_id nil :name $ diff --git a/test/metabase/api/meta/db_test.clj b/test/metabase/api/meta/db_test.clj index 4ef82a691b6..73c22639021 100644 --- a/test/metabase/api/meta/db_test.clj +++ b/test/metabase/api/meta/db_test.clj @@ -160,12 +160,12 @@ ;; These should come back in alphabetical order (expect (let [db-id (db-id)] - [(match-$ (sel :one Table :id (id :categories)) + [(match-$ (Table (id :categories)) {:description nil, :entity_type nil, :name "CATEGORIES", :rows 75, :updated_at $, :entity_name nil, :active true, :id $, :db_id db-id, :created_at $, :human_readable_name "Categories"}) - (match-$ (sel :one Table :id (id :checkins)) + (match-$ (Table (id :checkins)) {:description nil, :entity_type nil, :name "CHECKINS", :rows 1000, :updated_at $, :entity_name nil, :active true, :id $, :db_id db-id, :created_at $, :human_readable_name "Checkins"}) - (match-$ (sel :one Table :id (id :users)) + (match-$ (Table (id :users)) {:description nil, :entity_type nil, :name "USERS", :rows 15, :updated_at $, :entity_name nil, :active true, :id $, :db_id db-id, :created_at $, :human_readable_name "Users"}) - (match-$ (sel :one Table :id (id :venues)) + (match-$ (Table (id :venues)) {:description nil, :entity_type nil, :name "VENUES", :rows 100, :updated_at $, :entity_name nil, :active true, :id $, :db_id db-id, :created_at $, :human_readable_name "Venues"})]) ((user->client :rasta) :get 200 (format "meta/db/%d/tables" (db-id)))) diff --git a/test/metabase/api/meta/field_test.clj b/test/metabase/api/meta/field_test.clj index f60cc814da4..15b8c860989 100644 --- a/test/metabase/api/meta/field_test.clj +++ b/test/metabase/api/meta/field_test.clj @@ -12,10 +12,10 @@ ;; ## GET /api/meta/field/:id (expect - (match-$ (sel :one Field :id (id :users :name)) + (match-$ (Field (id :users :name)) {:description nil :table_id (id :users) - :table (match-$ (sel :one Table :id (id :users)) + :table (match-$ (Table (id :users)) {:description nil :entity_type nil :db (match-$ (db) @@ -57,7 +57,7 @@ ;; Check that we can update a Field ;; TODO - this should NOT be modifying a field from our test data, we should create new data to mess with (expect-eval-actual-first - (match-$ (let [field (sel :one Field :id (id :venues :latitude))] + (match-$ (let [field (Field (id :venues :latitude))] ;; this is sketchy. But return the Field back to its unmodified state so it won't affect other unit tests (upd Field (id :venues :latitude) :special_type "latitude") ;; match against the modified Field diff --git a/test/metabase/api/meta/table_test.clj b/test/metabase/api/meta/table_test.clj index 0ed48e7a5bf..f53ad2dba3c 100644 --- a/test/metabase/api/meta/table_test.clj +++ b/test/metabase/api/meta/table_test.clj @@ -57,7 +57,7 @@ ;; ## GET /api/meta/table/:id (expect - (match-$ (sel :one Table :id (id :venues)) + (match-$ (Table (id :venues)) {:description nil :entity_type nil :db (match-$ (db) @@ -80,7 +80,7 @@ ((user->client :rasta) :get 200 (format "meta/table/%d" (id :venues)))) ;; ## GET /api/meta/table/:id/fields -(expect [(match-$ (sel :one Field :id (id :categories :id)) +(expect [(match-$ (Field (id :categories :id)) {:description nil :table_id (id :categories) :special_type "id" @@ -94,7 +94,7 @@ :preview_display true :created_at $ :base_type "BigIntegerField"}) - (match-$ (sel :one Field :id (id :categories :name)) + (match-$ (Field (id :categories :name)) {:description nil :table_id (id :categories) :special_type "name" @@ -112,7 +112,7 @@ ;; ## GET /api/meta/table/:id/query_metadata (expect - (match-$ (sel :one Table :id (id :categories)) + (match-$ (Table (id :categories)) {:description nil :entity_type nil :db (match-$ (db) @@ -124,7 +124,7 @@ :organization_id nil :description nil}) :name "CATEGORIES" - :fields [(match-$ (sel :one Field :id (id :categories :id)) + :fields [(match-$ (Field (id :categories :id)) {:description nil :table_id (id :categories) :special_type "id" @@ -138,7 +138,7 @@ :preview_display true :created_at $ :base_type "BigIntegerField"}) - (match-$ (sel :one Field :id (id :categories :name)) + (match-$ (Field (id :categories :name)) {:description nil :table_id (id :categories) :special_type "name" @@ -184,7 +184,7 @@ ;;; GET api/meta/table/:id/query_metadata?include_sensitive_fields ;;; Make sure that getting the User table *does* include info about the password field, but not actual values themselves (expect - (match-$ (sel :one Table :id (id :users)) + (match-$ (Table (id :users)) {:description nil :entity_type nil :db (match-$ (db) @@ -196,7 +196,7 @@ :organization_id nil :description nil}) :name "USERS" - :fields [(match-$ (sel :one Field :id (id :users :id)) + :fields [(match-$ (Field (id :users :id)) {:description nil :table_id (id :users) :special_type "id" @@ -210,7 +210,7 @@ :preview_display true :created_at $ :base_type "BigIntegerField"}) - (match-$ (sel :one Field :id (id :users :last_login)) + (match-$ (Field (id :users :last_login)) {:description nil :table_id (id :users) :special_type "category" @@ -224,7 +224,7 @@ :preview_display true :created_at $ :base_type "DateTimeField"}) - (match-$ (sel :one Field :id (id :users :name)) + (match-$ (Field (id :users :name)) {:description nil :table_id (id :users) :special_type "category" @@ -283,7 +283,7 @@ ;;; GET api/meta/table/:id/query_metadata ;;; Make sure that getting the User table does *not* include password info (expect - (match-$ (sel :one Table :id (id :users)) + (match-$ (Table (id :users)) {:description nil :entity_type nil :db (match-$ (db) @@ -295,7 +295,7 @@ :organization_id nil :description nil}) :name "USERS" - :fields [(match-$ (sel :one Field :id (id :users :id)) + :fields [(match-$ (Field (id :users :id)) {:description nil :table_id (id :users) :special_type "id" @@ -309,7 +309,7 @@ :preview_display true :created_at $ :base_type "BigIntegerField"}) - (match-$ (sel :one Field :id (id :users :last_login)) + (match-$ (Field (id :users :last_login)) {:description nil :table_id (id :users) :special_type "category" @@ -323,7 +323,7 @@ :preview_display true :created_at $ :base_type "DateTimeField"}) - (match-$ (sel :one Field :id (id :users :name)) + (match-$ (Field (id :users :name)) {:description nil :table_id (id :users) :special_type "category" @@ -368,7 +368,7 @@ ;; ## PUT /api/meta/table/:id (expect-eval-actual-first - (match-$ (let [table (sel :one Table :id (id :users))] + (match-$ (let [table (Table (id :users))] ;; reset Table back to its original state (upd Table (id :users) :entity_name nil :entity_type nil :description nil) table) @@ -422,7 +422,7 @@ :special_type "fk" :created_at $ :updated_at $ - :table (match-$ (sel :one Table :id (id :checkins)) + :table (match-$ (Table (id :checkins)) {:description nil :entity_type nil :name "CHECKINS" @@ -454,7 +454,7 @@ :special_type "id" :created_at $ :updated_at $ - :table (match-$ (sel :one Table :id (id :users)) + :table (match-$ (Table (id :users)) {:description nil :entity_type nil :name "USERS" diff --git a/test/metabase/api/session_test.clj b/test/metabase/api/session_test.clj index 6fb6f084a76..5313b50a7ce 100644 --- a/test/metabase/api/session_test.clj +++ b/test/metabase/api/session_test.clj @@ -41,7 +41,7 @@ (let [{session_id :id} ((user->client :rasta) :post 200 "session" (user->credentials :rasta))] (assert session_id) ((user->client :rasta) :delete 204 "session" :session_id session_id) - (sel :one Session :id session_id))) + (Session session_id))) ;; ## POST /api/session/forgot_password diff --git a/test/metabase/driver/generic_sql_test.clj b/test/metabase/driver/generic_sql_test.clj index 350119284a9..a490a483f8c 100644 --- a/test/metabase/driver/generic_sql_test.clj +++ b/test/metabase/driver/generic_sql_test.clj @@ -22,7 +22,7 @@ (delay (korma-entity @users-table))) (def users-name-field - (delay (sel :one Field :id (id :users :name)))) + (delay (Field (id :users :name)))) ;; ACTIVE-TABLE-NAMES (expect diff --git a/test/metabase/driver/sync_test.clj b/test/metabase/driver/sync_test.clj index bdca4176f5f..f0396e8b15e 100644 --- a/test/metabase/driver/sync_test.clj +++ b/test/metabase/driver/sync_test.clj @@ -23,7 +23,7 @@ (delay (korma-entity @users-table))) (def users-name-field - (delay (sel :one Field :id (id :users :name)))) + (delay (Field (id :users :name)))) ;; ## TEST PK SYNCING @@ -77,16 +77,16 @@ (upd Field field-id :special_type nil) (get-special-type-and-fk-exists?)) ;; Run sync-table and they should be set again - (let [table (sel :one Table :id (id :checkins))] + (let [table (Table (id :checkins))] (driver/sync-table! table) (get-special-type-and-fk-exists?))])) ;; ## Tests for DETERMINE-FK-TYPE ;; Since COUNT(category_id) > COUNT(DISTINCT(category_id)) the FK relationship should be Mt1 (expect :Mt1 - (sync/determine-fk-type (sel :one Field :id (id :venues :category_id)))) + (sync/determine-fk-type (Field (id :venues :category_id)))) ;; Since COUNT(id) == COUNT(DISTINCT(id)) the FK relationship should be 1t1 ;; (yes, ID isn't really a FK field, but determine-fk-type doesn't need to know that) (expect :1t1 - (sync/determine-fk-type (sel :one Field :id (id :venues :id)))) + (sync/determine-fk-type (Field (id :venues :id)))) diff --git a/test/metabase/test/data/datasets.clj b/test/metabase/test/data/datasets.clj index 4d4fda20b8f..e45fa8fa493 100644 --- a/test/metabase/test/data/datasets.clj +++ b/test/metabase/test/data/datasets.clj @@ -109,7 +109,7 @@ (memoized-table-name->id (:id (db this)) (s/upper-case (name table-name)))) (table-name->table [this table-name] - (sel :one Table :id (table-name->id this (s/upper-case (name table-name))))) + (Table (table-name->id this (s/upper-case (name table-name))))) (field-name->id [this table-name field-name] (memoized-field-name->id (:id (db this)) (s/upper-case (name table-name)) (s/upper-case (name field-name)))) @@ -141,7 +141,7 @@ (memoized-table-name->id (:id (db this)) (name table-name))) (table-name->table [this table-name] - (sel :one Table :id (table-name->id this (name table-name)))) + (Table (table-name->id this (name table-name)))) (field-name->id [this table-name field-name] (memoized-field-name->id (:id (db this)) (name table-name) (name field-name))) diff --git a/test/metabase/test_setup.clj b/test/metabase/test_setup.clj index d42a8333889..5c7a54e20dc 100644 --- a/test/metabase/test_setup.clj +++ b/test/metabase/test_setup.clj @@ -75,7 +75,7 @@ (datasets/load-data! dataset) ;; Check that dataset is loaded and working - (assert (db/sel :one Table :id (datasets/table-name->id dataset :venues)) + (assert (Table (datasets/table-name->id dataset :venues)) (format "Loading test dataset %s failed: could not find 'venues' Table!" dataset-name))))) (defn test-startup -- GitLab