From 26710c0aca4d13ef666cedd0347296bfa3651570 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Tue, 8 Jul 2025 17:38:24 +0700 Subject: [PATCH] clan-app: Move json.loads to try catch --- pkgs/clan-app/clan_app/api/middleware/logging.py | 2 +- .../clan_app/deps/webview/webview_bridge.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/clan-app/clan_app/api/middleware/logging.py b/pkgs/clan-app/clan_app/api/middleware/logging.py index 4a6b4e03a..6f066c85f 100644 --- a/pkgs/clan-app/clan_app/api/middleware/logging.py +++ b/pkgs/clan-app/clan_app/api/middleware/logging.py @@ -30,7 +30,7 @@ class LoggingMiddleware(Middleware): if log_group is not None: if not isinstance(log_group, list): msg = f"Expected log_group to be a list, got {type(log_group)}" - raise TypeError(msg) # noqa: TRY301 + raise TypeError(msg) # noqa: TRY301 log.warning( f"Using log group {log_group} for {context.request.method_name} with op_key {context.request.op_key}" ) diff --git a/pkgs/clan-app/clan_app/deps/webview/webview_bridge.py b/pkgs/clan-app/clan_app/deps/webview/webview_bridge.py index 84055d7c5..1df505715 100644 --- a/pkgs/clan-app/clan_app/deps/webview/webview_bridge.py +++ b/pkgs/clan-app/clan_app/deps/webview/webview_bridge.py @@ -43,10 +43,11 @@ class WebviewBridge(ApiBridge): arg: int, ) -> None: """Handle a call from webview's JavaScript bridge.""" - op_key = op_key_bytes.decode() - raw_args = json.loads(request_data.decode()) try: + op_key = op_key_bytes.decode() + raw_args = json.loads(request_data.decode()) + # Parse the webview-specific request format header = {} args = {} @@ -56,17 +57,17 @@ class WebviewBridge(ApiBridge): header = request.get("header", {}) if not isinstance(header, dict): msg = f"Expected header to be a dict, got {type(header)}" - raise TypeError(msg) # noqa: TRY301 + raise TypeError(msg) # noqa: TRY301 body = request.get("body", {}) if not isinstance(body, dict): msg = f"Expected body to be a dict, got {type(body)}" - raise TypeError(msg) # noqa: TRY301 + raise TypeError(msg) # noqa: TRY301 args = body elif len(raw_args) > 1: msg = "Expected a single argument, got multiple arguments" - raise ValueError(msg) # noqa: TRY301 + raise ValueError(msg) # noqa: TRY301 # Create API request api_request = BackendRequest( @@ -74,6 +75,8 @@ class WebviewBridge(ApiBridge): ) except Exception as e: + msg = f"Error while handling webview call {method_name} with op_key {op_key_bytes}" + log.exception(msg) self.send_error_response(op_key, str(e), ["webview_bridge", method_name]) return