fix pawd
This commit is contained in:
@@ -94,6 +94,24 @@ async def register(
|
||||
return None
|
||||
elif resp.status_code == 400:
|
||||
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}"
|
||||
except httpx.ConnectError:
|
||||
return "Не удалось подключиться к серверу"
|
||||
|
||||
Reference in New Issue
Block a user