нахождение по file_id clickhouse

This commit is contained in:
Inohara 2024-10-28 14:18:14 +04:00
parent 774aacef19
commit de0e04fb3a
3 changed files with 17 additions and 1 deletions

View File

@ -11,6 +11,9 @@ class ChExperimentDBExperimentDataRepository:
def get_by_id(self, id: int) -> ChExperimentDBExperimentData:
return self.session.query(ChExperimentDBExperimentData).filter(ChExperimentDBExperimentData.id == id).one_or_none()
def get_by_file_id(self, file_id: str) -> ChExperimentDBExperimentData:
return self.session.query(ChExperimentDBExperimentData).filter(ChExperimentDBExperimentData.file_id == file_id).all()
def create(self, ch_experiment_data: ChExperimentDBExperimentData) -> ChExperimentDBExperimentData:
max_id_query = select(func.max(ChExperimentDBExperimentData.id))
max_id_result = self.session.execute(max_id_query).scalar()

View File

@ -54,6 +54,19 @@ async def get_ch_experimentdb_experiment_data_by_id(id: int):
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.get('/file_id/{file_id}')
async def get_ch_experimentdb_experiment_data_by_file_id(file_id: str):
try:
record = repository.get_by_file_id(file_id)
if record:
return record
else:
raise HTTPException(status_code=404, detail="Запись не найдена")
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.delete('/{id}/delete')
async def delete_ch_experimentdb_experiment_data(id: int):
try:

View File

@ -54,7 +54,7 @@ async def get_by_id_experiment_data(id: int):
raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}")
@router.get('/{file_id}')
@router.get('/file_id/{file_id}')
async def get_experiment_data_by_file_id(file_id: str):
try:
result = await get_exp_data_by_file_id(file_id)