VORKOUT-7 #9

Merged
ivan.dev merged 12 commits from VORKOUT-7 into master 2025-06-05 16:29:14 +05:00
3 changed files with 12 additions and 19 deletions
Showing only changes of commit 5094b84675 - Show all commits

View File

@ -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]:
ivan.dev marked this conversation as resolved Outdated

Надо переименовать метод и изменить описание, сейчас же не только login и id

Надо переименовать метод и изменить описание, сейчас же не только `login` и `id`
@ -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)
ivan.dev marked this conversation as resolved Outdated

Давай все-таки через offset делать, а то вычислять по id как-то сомнительно выглядит

Давай все-таки через `offset` делать, а то вычислять по `id` как-то сомнительно выглядит
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]
ivan.dev marked this conversation as resolved Outdated

А почему ты только эти поля селектишь? Просто для теста взял?

А почему ты только эти поля селектишь? Просто для теста взял?

Да.

Да.
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
}) )
ivan.dev marked this conversation as resolved Outdated

Тут нужно вернуть обыкновенное заполнение класса и его возврат.

Тут нужно вернуть обыкновенное заполнение класса и его возврат.

Так сразу users_data можно сюда передать? На худой случай ._asdict() есть.

Так сразу `users_data` можно сюда передать? На худой случай [._asdict()](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._asdict) есть.
async def get_user_id(connection: AsyncConnection, id: int) -> Optional[User]: async def get_user_id(connection: AsyncConnection, id: int) -> Optional[User]:

View File

@ -1,11 +1,8 @@
from fastapi import ( from fastapi import (
APIRouter, APIRouter,
Body,
Depends, Depends,
Form,
HTTPException, HTTPException,
Request, Request,
Response,
status, status,
) )

View File

@ -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])