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 <[email protected]> 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):
