From 30463314583599b304aefcf8b9b19fe796a4f016 Mon Sep 17 00:00:00 2001 From: yongtenglei Date: Mon, 1 Dec 2025 14:07:09 +0800 Subject: [PATCH] ci --- api/utils/api_utils.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/api/utils/api_utils.py b/api/utils/api_utils.py index b0e59420f..8f17e1de0 100644 --- a/api/utils/api_utils.py +++ b/api/utils/api_utils.py @@ -22,6 +22,7 @@ import os import time from copy import deepcopy from functools import wraps +from typing import Any import requests import trio @@ -44,9 +45,10 @@ from common import settings requests.models.complexjson.dumps = functools.partial(json.dumps, cls=CustomJSONEncoder) + async def _coerce_request_data() -> dict: """Fetch JSON body with sane defaults; fallback to form data.""" - payload = None + payload: Any = None last_error: Exception | None = None try: @@ -61,13 +63,20 @@ async def _coerce_request_data() -> dict: payload = form.to_dict() except Exception as e: last_error = e + payload = None if payload is None: if last_error is not None: raise last_error raise ValueError("No JSON body or form data found in request.") - return payload or {} + if isinstance(payload, dict): + return payload or {} + + if isinstance(payload, str): + raise AttributeError("'str' object has no attribute 'get'") + + raise TypeError(f"Unsupported request payload type: {type(payload)!r}") async def get_request_json(): return await _coerce_request_data()