Заливаем готовую часть #1

Merged
Sosees04ka merged 26 commits from modified_db into main 2024-11-05 21:26:38 +04:00
2 changed files with 22 additions and 9 deletions
Showing only changes of commit 774aacef19 - Show all commits

View File

@ -12,3 +12,13 @@ async def get_exp_data_by_file_id(file_id: str) -> Sequence[ExperimentData]:
select(ExperimentData).where(ExperimentData.file_id == file_id) select(ExperimentData).where(ExperimentData.file_id == file_id)
) )
return result.scalars().all() return result.scalars().all()
async def get_all_exp_data(page: int, page_size: int) -> Sequence[ExperimentData]:
async with async_session_postgres() as session:
offset = (page - 1) * page_size
result = await session.execute(
select(ExperimentData).offset(offset).limit(page_size)
)
return result.scalars().all()

View File

@ -1,8 +1,10 @@
from fastapi import APIRouter, HTTPException import math
from fastapi import APIRouter, HTTPException, Query
from db.crud import * from db.crud import *
from db.models import ExperimentData from db.models import ExperimentData
from db.repositories import get_exp_data_by_file_id from db.repositories import get_exp_data_by_file_id, get_all_exp_data
from network.schemas import ExperimentDataBody from network.schemas import ExperimentDataBody
router = APIRouter() router = APIRouter()
@ -26,14 +28,15 @@ async def create_experiment_data(body: ExperimentDataBody):
@router.get('/all') @router.get('/all')
async def get_all_experiment_data(): async def get_all_experiment_data(page: int = Query(ge=1, default=1),
size: int = Query(ge = 1, le=100, default=15)):
try: try:
result = await get_all(ExperimentData) result = await get_all_exp_data(page, size)
return {
if result is not None: "items": result,
return result "page": page,
else: "size": size,
return {"message": "Нет записей в <ExperimentData>"} }
except Exception as e: except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}") raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")