From e947f8a4c8f3fbca9f278ede4b96259a2939d35b Mon Sep 17 00:00:00 2001 From: ofekisr <35701650+ofekisr@users.noreply.github.com> Date: Wed, 1 Sep 2021 19:24:33 +0300 Subject: [PATCH] refactor sql_json view endpoint: extract to method reuse code (#16546) --- superset/views/core.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/superset/views/core.py b/superset/views/core.py index 6cc910dc54..5753a78a74 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2411,8 +2411,9 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods return json_error_response(f"{msg}", status=400) return json_error_response(f"{msg}") - @staticmethod - def _sql_json_async( + @classmethod + def _sql_json_async( # pylint: disable=too-many-arguments + cls, session: Session, rendered_query: str, query: Query, @@ -2474,19 +2475,13 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods # Update saved query with execution info from the query execution QueryDAO.update_saved_query_exec_info(query_id) - resp = json_success( - json.dumps( - {"query": query.to_dict()}, - default=utils.json_int_dttm_ser, - ignore_nan=True, - ), - status=202, - ) + resp = json_success(cls._convert_query_to_payload(query), status=202,) session.commit() return resp - @staticmethod + @classmethod def _sql_json_sync( + cls, _session: Session, rendered_query: str, query: Query, @@ -2723,6 +2718,14 @@ class Superset(BaseSupersetView): # pylint: disable=too-many-public-methods session, rendered_query, query, expand_data, log_params ) + @staticmethod + def _convert_query_to_payload(query: Query) -> str: + return json.dumps( + {"query": query.to_dict()}, + default=utils.json_int_dttm_ser, + ignore_nan=True, + ) + @classmethod def _get_the_query_db( cls, execution_context: SqlJsonExecutionContext, session: Session