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):