You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by su...@apache.org on 2021/03/10 22:31:55 UTC

[superset] 03/03: finish dashboard dataset schema

This is an automated email from the ASF dual-hosted git repository.

suddjian pushed a commit to branch dashboard-dataset-endpoint
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 13a4e1befbe16eb438dc3e39c938e067fc229671
Author: David Aaron Suddjian <aa...@gmail.com>
AuthorDate: Wed Mar 10 14:29:47 2021 -0800

    finish dashboard dataset schema
---
 superset/dashboards/api.py     | 14 ++++++++++----
 superset/dashboards/schemas.py | 13 +++++++++++++
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/superset/dashboards/api.py b/superset/dashboards/api.py
index 6565f2d..20e50e3 100644
--- a/superset/dashboards/api.py
+++ b/superset/dashboards/api.py
@@ -58,6 +58,7 @@ from superset.dashboards.filters import (
     FilterRelatedRoles,
 )
 from superset.dashboards.schemas import (
+    DashboardDatasetSchema,
     DashboardGetResponseSchema,
     DashboardPostSchema,
     DashboardPutSchema,
@@ -170,6 +171,7 @@ class DashboardRestApi(BaseSupersetModelRestApi):
     edit_model_schema = DashboardPutSchema()
     chart_entity_response_schema = ChartEntityResponseSchema()
     dashboard_get_response_schema = DashboardGetResponseSchema()
+    dashboard_dataset_schema = DashboardDatasetSchema()
 
     base_filters = [["slice", DashboardFilter, lambda: []]]
 
@@ -284,7 +286,9 @@ class DashboardRestApi(BaseSupersetModelRestApi):
                             type: object
                             properties:
                               result:
-                                type: object
+                                type: array
+                                items:
+                                  $ref: '#/components/schemas/DashboardDatasetSchema'
                     302:
                       description: Redirects to the current digest
                     400:
@@ -295,9 +299,11 @@ class DashboardRestApi(BaseSupersetModelRestApi):
                       $ref: '#/components/responses/404'
                 """
         try:
-            dash = DashboardDAO.get_datasets_for_dashboard(id_or_slug)
-            # result = self.datasets_response_schema.dump(dash)
-            return self.response(200, result=dash)
+            datasets = DashboardDAO.get_datasets_for_dashboard(id_or_slug)
+            result = [
+                self.dashboard_dataset_schema.dump(dataset) for dataset in datasets
+            ]
+            return self.response(200, result=result)
         except DashboardNotFoundError:
             return self.response_404()
 
diff --git a/superset/dashboards/schemas.py b/superset/dashboards/schemas.py
index cbf11e0..8664198 100644
--- a/superset/dashboards/schemas.py
+++ b/superset/dashboards/schemas.py
@@ -177,6 +177,7 @@ class DashboardDatasetSchema(Schema):
     default_endpoint = fields.String()
     filter_select = fields.Bool()
     filter_select_enabled = fields.Bool()
+    is_sqllab_view = fields.Bool()
     name = fields.Str()
     datasource_name = fields.Str()
     table_name = fields.Str()
@@ -188,6 +189,18 @@ class DashboardDatasetSchema(Schema):
     perm = fields.Str()
     edit_url = fields.Str()
     sql = fields.Str()
+    select_star = fields.Str()
+    main_dttm_col = fields.Str()
+    health_check_message = fields.Str()
+    fetch_values_predicate = fields.Str()
+    template_params = fields.Str()
+    owners = fields.List(fields.Int())
+    columns = fields.List(fields.Dict())
+    metrics = fields.List(fields.Dict())
+    order_by_choices = fields.List(fields.List(fields.Str()))
+    verbose_map = fields.Dict(fields.Str(), fields.Str())
+    time_grain_sqla = fields.List(fields.List(fields.Str()))
+    granularity_sqla = fields.List(fields.List(fields.Str()))
 
 
 class BaseDashboardSchema(Schema):