villebro commented on a change in pull request #10977:
URL:
https://github.com/apache/incubator-superset/pull/10977#discussion_r492491935
##########
File path: superset/charts/api.py
##########
@@ -469,20 +471,21 @@ def data(self) -> Response:
return self.response_400(
message=_("Request is incorrect: %(error)s",
error=error.messages)
)
+
+ # ACL control
try:
query_context.raise_for_access()
except SupersetSecurityException:
return self.response_401()
+
+ # get all query payload
payload = query_context.get_payload()
for query in payload:
if query.get("error"):
return self.response_400(message=f"Error: {query['error']}")
- result_format = query_context.result_format
-
- response = self.response_400(
- message=f"Unsupported result_format: {result_format}"
- )
+ result_format = query_context.result_format
+ response = None
Review comment:
@zhaoyongjie I've placed that backstop there to ensure so that if
someone adds a new result type to the marshmallow schema but forgets to add it
to the endpoint, they don't get a `None` result. Having said that, you're
absolutely right that this method is extremely loaded and should not be this
complex, with this type of logic preferably elsewhere (marshmallow schema,
`QueryContext`/`QueryObject`). If we can make sure that there is no way of
ending up at the end of this method with a `result_type` that is unsupported
I'm ok with removing it. However, that probably requires moving said logic to
`QueryContext`.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]