fix: Returns 404 instead of 500 for unknown dashboard filter state keys (#17878)
* fix: Returns 404 instead of 500 for unknown dashboard filter state keys * Reduces hierarchies of if-expression * Removes unnecessary check Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com> * Removes unused variable * Fixes type error * Removes unused import Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
This commit is contained in:
parent
bd9e1235a9
commit
3a9bd12e3d
|
|
@ -17,7 +17,6 @@
|
|||
from typing import Optional
|
||||
|
||||
from superset.dashboards.dao import DashboardDAO
|
||||
from superset.dashboards.filter_state.commands.entry import Entry
|
||||
from superset.extensions import cache_manager
|
||||
from superset.key_value.commands.get import GetKeyValueCommand
|
||||
from superset.key_value.utils import cache_key
|
||||
|
|
@ -25,12 +24,8 @@ from superset.key_value.utils import cache_key
|
|||
|
||||
class GetFilterStateCommand(GetKeyValueCommand):
|
||||
def get(self, resource_id: int, key: str, refresh_timeout: bool) -> Optional[str]:
|
||||
dashboard = DashboardDAO.get_by_id_or_slug(str(resource_id))
|
||||
if dashboard:
|
||||
entry: Entry = cache_manager.filter_state_cache.get(
|
||||
cache_key(resource_id, key)
|
||||
)
|
||||
if refresh_timeout:
|
||||
cache_manager.filter_state_cache.set(key, entry)
|
||||
return entry["value"]
|
||||
return None
|
||||
DashboardDAO.get_by_id_or_slug(str(resource_id))
|
||||
entry = cache_manager.filter_state_cache.get(cache_key(resource_id, key)) or {}
|
||||
if entry and refresh_timeout:
|
||||
cache_manager.filter_state_cache.set(key, entry)
|
||||
return entry.get("value")
|
||||
|
|
|
|||
|
|
@ -145,9 +145,9 @@ def test_put_not_owner(client, dashboard_id: int):
|
|||
assert resp.status_code == 403
|
||||
|
||||
|
||||
def test_get_key_not_found(client):
|
||||
def test_get_key_not_found(client, dashboard_id: int):
|
||||
login(client, "admin")
|
||||
resp = client.get("unknown-key")
|
||||
resp = client.get(f"api/v1/dashboard/{dashboard_id}/filter_state/unknown-key/")
|
||||
assert resp.status_code == 404
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue