fix: proper URL building (#31962)

This commit is contained in:
Beto Dealmeida 2025-01-23 15:59:45 -05:00 committed by GitHub
parent 6d117ffbb5
commit 14f798afec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 8 additions and 11 deletions

View File

@ -16,7 +16,7 @@
# under the License.
import logging
from flask import request, Response
from flask import request, Response, url_for
from flask_appbuilder.api import expose, protect, safe
from marshmallow import ValidationError
@ -98,8 +98,7 @@ class DashboardPermalinkRestApi(BaseSupersetApi):
dashboard_id=pk,
state=state,
).run()
http_origin = request.headers.environ.get("HTTP_ORIGIN")
url = f"{http_origin}/superset/dashboard/p/{key}/"
url = url_for("Superset.dashboard_permalink", key=key, _external=True)
return self.response(201, key=key, url=url)
except (ValidationError, DashboardPermalinkInvalidStateError) as ex:
return self.response(400, message=str(ex))

View File

@ -16,7 +16,7 @@
# under the License.
import logging
from flask import request, Response
from flask import request, Response, url_for
from flask_appbuilder.api import expose, protect, safe
from marshmallow import ValidationError
@ -95,8 +95,7 @@ class ExplorePermalinkRestApi(BaseSupersetApi):
try:
state = self.add_model_schema.load(request.json)
key = CreateExplorePermalinkCommand(state=state).run()
http_origin = request.headers.environ.get("HTTP_ORIGIN")
url = f"{http_origin}/superset/explore/p/{key}/"
url = url_for("ExplorePermalinkView.permalink", key=key, _external=True)
return self.response(201, key=key, url=url)
except ValidationError as ex:
return self.response(400, message=ex.messages)

View File

@ -16,7 +16,7 @@
# under the License.
import logging
from flask import request, Response
from flask import request, Response, url_for
from flask_appbuilder.api import expose, protect, safe
from marshmallow import ValidationError
@ -87,8 +87,7 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
try:
state = self.add_model_schema.load(request.json)
key = CreateSqlLabPermalinkCommand(state=state).run()
http_origin = request.headers.environ.get("HTTP_ORIGIN")
url = f"{http_origin}/sqllab/p/{key}"
url = url_for("SqllabView.root", key=key, _external=True)
return self.response(201, key=key, url=url)
except ValidationError as ex:
return self.response(400, message=ex.messages)
@ -104,10 +103,10 @@ class SqlLabPermalinkRestApi(BaseSupersetApi):
log_to_statsd=False,
)
def get(self, key: str) -> Response:
"""Get chart's permanent link state.
"""Get permanent link state for SQLLab editor.
---
get:
summary: Get chart's permanent link state
summary: Get permanent link state for SQLLab editor.
parameters:
- in: path
schema: