Skip to content
Snippets Groups Projects
Commit 0a299c21 authored by Allen Gilliland's avatar Allen Gilliland
Browse files

Merge pull request #218 from metabase/ag-field-target

hydrate Field target on /api/meta/table/:id/query_metadata
parents c93e5e7f 6af74c32
No related branches found
No related tags found
No related merge requests found
......@@ -36,7 +36,7 @@
(defendpoint GET "/:id/query_metadata" [id]
(->404 (sel :one Table :id id)
(hydrate :db :fields)))
(hydrate :db [:fields [:target]])))
(defendpoint GET "/:id/fks" [id]
(read-check Table id)
......
......@@ -2,7 +2,8 @@
(:require [korma.core :refer :all]
[metabase.api.common :refer [check]]
[metabase.db :refer :all]
(metabase.models [database :refer [Database]])
(metabase.models [database :refer [Database]]
[foreign-key :refer [ForeignKey]])
[metabase.util :as util]))
(def special-types
......@@ -73,10 +74,13 @@
(defentity Field
(table :metabase_field))
(defmethod post-select Field [_ {:keys [table_id] :as field}]
(defmethod post-select Field [_ {:keys [id special_type table_id] :as field}]
(util/assoc* field
:table (delay (sel :one 'metabase.models.table/Table :id table_id))
:db (delay @(:db @(:table <>)))
:target (delay (when (= "fk" special_type)
(let [dest-id (:destination_id (sel :one :fields [ForeignKey :destination_id] :origin_id id))]
(sel :one Field :id dest-id))))
:can_read (delay @(:can_read @(:table <>)))
:can_write (delay @(:can_write @(:table <>)))))
......
......@@ -107,6 +107,7 @@
:id $
:field_type "info"
:position 0
:target nil
:preview_display true
:created_at $
:base_type "TextField"})
......@@ -120,6 +121,7 @@
:id $
:field_type "info"
:position 0
:target nil
:preview_display true
:created_at $
:base_type "BigIntegerField"})]
......
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