refactor sql_json view endpoint: extract to method reuse code (#16546)
diff --git a/superset/views/core.py b/superset/views/core.py
index 6cc910d..5753a78 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -2411,8 +2411,9 @@
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 @@
# 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 @@
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