fix: TypeAdapter
This commit is contained in:
parent
320c13183f
commit
5094b84675
@ -3,8 +3,6 @@ import math
|
|||||||
|
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from pydantic import TypeAdapter
|
|
||||||
|
|
||||||
from sqlalchemy import insert, select, func
|
from sqlalchemy import insert, select, func
|
||||||
from sqlalchemy.ext.asyncio import AsyncConnection
|
from sqlalchemy.ext.asyncio import AsyncConnection
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
@ -12,7 +10,7 @@ from enum import Enum
|
|||||||
from api.db.tables.account import account_table
|
from api.db.tables.account import account_table
|
||||||
|
|
||||||
from api.schemas.account.account import User
|
from api.schemas.account.account import User
|
||||||
from api.schemas.endpoints.account import AllUser, AllUserResponse
|
from api.schemas.endpoints.account import AllUserResponse, all_user_adapter
|
||||||
|
|
||||||
|
|
||||||
async def get_all_users_login_and_id(connection: AsyncConnection, page, limit) -> Optional[User]:
|
async def get_all_users_login_and_id(connection: AsyncConnection, page, limit) -> Optional[User]:
|
||||||
@ -20,9 +18,6 @@ async def get_all_users_login_and_id(connection: AsyncConnection, page, limit) -
|
|||||||
Получает id и login всех юзеров
|
Получает id и login всех юзеров
|
||||||
"""
|
"""
|
||||||
|
|
||||||
user_adapter = TypeAdapter(AllUser)
|
|
||||||
response_adapter = TypeAdapter(AllUserResponse)
|
|
||||||
|
|
||||||
first_user = page*limit-(limit)
|
first_user = page*limit-(limit)
|
||||||
|
|
||||||
query = (
|
query = (
|
||||||
@ -41,16 +36,15 @@ async def get_all_users_login_and_id(connection: AsyncConnection, page, limit) -
|
|||||||
total_count = count_result.scalar()
|
total_count = count_result.scalar()
|
||||||
total_pages = math.ceil(total_count / limit)
|
total_pages = math.ceil(total_count / limit)
|
||||||
|
|
||||||
validated_users = [
|
validated_users = all_user_adapter.validate_python(
|
||||||
user_adapter.validate_python({"id": u.id, "login": u.login})
|
[{"id": u.id, "login": u.login} for u in users_data]
|
||||||
for u in users_data
|
)
|
||||||
]
|
|
||||||
|
|
||||||
return response_adapter.validate_python({
|
return AllUserResponse(
|
||||||
"users": validated_users,
|
users=validated_users,
|
||||||
"amount_count": total_count,
|
amount_count=total_count,
|
||||||
"amount_pages": total_pages
|
amount_pages=total_pages
|
||||||
})
|
)
|
||||||
|
|
||||||
|
|
||||||
async def get_user_id(connection: AsyncConnection, id: int) -> Optional[User]:
|
async def get_user_id(connection: AsyncConnection, id: int) -> Optional[User]:
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
from fastapi import (
|
from fastapi import (
|
||||||
APIRouter,
|
APIRouter,
|
||||||
Body,
|
|
||||||
Depends,
|
Depends,
|
||||||
Form,
|
|
||||||
HTTPException,
|
HTTPException,
|
||||||
Request,
|
Request,
|
||||||
Response,
|
|
||||||
status,
|
status,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from pydantic import BaseModel, EmailStr, Field
|
from pydantic import BaseModel, EmailStr, Field, TypeAdapter
|
||||||
|
|
||||||
# Таблица для получения информации из запроса
|
# Таблица для получения информации из запроса
|
||||||
|
|
||||||
@ -37,3 +37,5 @@ class AllUserResponse(BaseModel):
|
|||||||
users: List[AllUser]
|
users: List[AllUser]
|
||||||
amount_count: int
|
amount_count: int
|
||||||
amount_pages: int
|
amount_pages: int
|
||||||
|
|
||||||
|
all_user_adapter = TypeAdapter(List[AllUser])
|
||||||
|
Loading…
Reference in New Issue
Block a user