PIbd-42_SSPR/network/routes/experiment_data_router.py

77 lines
2.4 KiB
Python
Raw Normal View History

from fastapi import APIRouter, HTTPException
from db.crud import *
from db.models import ExperimentData
from db.repositories import get_exp_data_by_file_id
from network.schemas import ExperimentDataBody
router = APIRouter()
@router.post('/create')
async def create_experiment_data(body: ExperimentDataBody):
try:
await create(ExperimentData,
direction=body.direction,
temperature=body.temperature,
nox=body.nox,
co2=body.co2,
co=body.co,
file_id=body.file_id
)
return {"message": "Новая запись <ExperimentData> успешно добавлена"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.get('/all')
async def get_all_experiment_data():
try:
result = await get_all(ExperimentData)
if result is not None:
return result
else:
return {"message": "Нет записей в <ExperimentData>"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.get('/{id}')
async def get_by_id_experiment_data(id: int):
try:
result = await get_by_id(ExperimentData, id)
if result is not None:
return result
else:
return {"message": "Запись <ExperimentData> не найдена"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.get('/{file_id}')
async def get_experiment_data_by_file_id(file_id: str):
try:
result = await get_exp_data_by_file_id(file_id)
if result is not None:
return result
else:
return {"message": f'<ExperimentData> с file_id = {id} - не найдены'}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.delete('/{id}/delete')
async def delete_experiment_data(id: int):
try:
is_deleted = await delete(ExperimentData, id)
if is_deleted:
return {"message": "Запись <ExperimentData> успешно удалена"}
else:
return {"message": "Запись <ExperimentData> не найдена"}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")