fix pawd
This commit is contained in:
@@ -94,6 +94,24 @@ async def register(
|
|||||||
return None
|
return None
|
||||||
elif resp.status_code == 400:
|
elif resp.status_code == 400:
|
||||||
return resp.json().get("detail", "Ошибка регистрации")
|
return resp.json().get("detail", "Ошибка регистрации")
|
||||||
|
elif resp.status_code == 422:
|
||||||
|
# Ошибки валидации Pydantic — извлекаем первое понятное сообщение
|
||||||
|
errors = resp.json().get("detail", [])
|
||||||
|
_field_names = {"password": "Пароль", "username": "Логин"}
|
||||||
|
_msg_map = {
|
||||||
|
"Password must be at least 8 characters": "Пароль должен быть не менее 8 символов",
|
||||||
|
"Username must be at least 3 characters": "Логин должен быть не менее 3 символов",
|
||||||
|
}
|
||||||
|
for err in errors:
|
||||||
|
raw = err.get("ctx", {}).get("error") or err.get("msg", "")
|
||||||
|
if raw in _msg_map:
|
||||||
|
return _msg_map[raw]
|
||||||
|
# fallback: поле + сообщение
|
||||||
|
loc = err.get("loc", [])
|
||||||
|
field = _field_names.get(loc[-1] if loc else "", "")
|
||||||
|
msg = err.get("msg", "Ошибка валидации").removeprefix("Value error, ")
|
||||||
|
return f"{field}: {msg}".strip(": ")
|
||||||
|
return "Проверьте правильность введённых данных"
|
||||||
return f"Ошибка сервера: {resp.status_code}"
|
return f"Ошибка сервера: {resp.status_code}"
|
||||||
except httpx.ConnectError:
|
except httpx.ConnectError:
|
||||||
return "Не удалось подключиться к серверу"
|
return "Не удалось подключиться к серверу"
|
||||||
|
|||||||
Reference in New Issue
Block a user