Единый тип ответа авторизации, добавление кнопки создания автора на странице авторы

This commit is contained in:
2026-01-31 23:41:56 +03:00
parent dfa4d14afc
commit 19d322c9d9
8 changed files with 50 additions and 43 deletions
+1 -3
View File
@@ -7,7 +7,7 @@ from .role import RoleBase, RoleCreate, RoleList, RoleRead, RoleUpdate
from .user import UserBase, UserCreate, UserList, UserRead, UserUpdate, UserLogin
from .loan import LoanBase, LoanCreate, LoanList, LoanRead, LoanUpdate
from .recovery import RecoveryCodesResponse, RecoveryCodesStatus, RecoveryCodeUse
from .token import Token, TokenData, PartialToken
from .token import TokenData
from .misc import (
AuthorWithBooks,
GenreWithBooks,
@@ -62,9 +62,7 @@ __all__ = [
"RoleUpdate",
"RoleRead",
"RoleList",
"Token",
"TokenData",
"PartialToken",
"TOTPSetupResponse",
"TOTPVerifyRequest",
"TOTPDisableRequest",
+2 -2
View File
@@ -11,8 +11,8 @@ class AuthorBase(SQLModel):
name: str = Field(description="Псевдоним")
model_config = ConfigDict( # pyright: ignore
json_schema_extra={"example": {"name": "author_name"}}
model_config = ConfigDict(
json_schema_extra={"example": {"name": "John Doe"}}
)
+11
View File
@@ -2,6 +2,7 @@
from typing import List
from pydantic import ConfigDict
from sqlmodel import SQLModel, Field
@@ -12,6 +13,16 @@ class RoleBase(SQLModel):
description: str | None = Field(None, description="Описание")
payroll: int = Field(0, description="Оплата")
model_config = ConfigDict(
json_schema_extra={
"example": {
"name": "admin",
"description": "system administrator",
"payroll": 500,
}
}
)
class RoleCreate(RoleBase):
"""Модель роли для создания"""
+1 -17
View File
@@ -1,24 +1,8 @@
"""Модуль DTO-моделей токенов"""
"""Модуль DTO-модели токена"""
from sqlmodel import SQLModel, Field
class Token(SQLModel):
"""Модель токена"""
access_token: str = Field(description="Токен доступа")
token_type: str = Field("bearer", description="Тип токена")
refresh_token: str | None = Field(None, description="Токен обновления")
class PartialToken(SQLModel):
"""Частичный токен — для подтверждения 2FA"""
partial_token: str = Field(description="Частичный токен")
token_type: str = Field("partial", description="Тип токена")
requires_2fa: bool = Field(True, description="Требуется TOTP-код")
class TokenData(SQLModel):
"""Модель содержимого токена"""