diff --git a/db/repositories/ch_experimentdb_experiment_data_repos.py b/db/repositories/ch_experimentdb_experiment_data_repos.py index 984673d..6356244 100644 --- a/db/repositories/ch_experimentdb_experiment_data_repos.py +++ b/db/repositories/ch_experimentdb_experiment_data_repos.py @@ -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() diff --git a/network/routes/ch_experimentdb_experiment_data_router.py b/network/routes/ch_experimentdb_experiment_data_router.py index 2421eed..11dfc94 100644 --- a/network/routes/ch_experimentdb_experiment_data_router.py +++ b/network/routes/ch_experimentdb_experiment_data_router.py @@ -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: diff --git a/network/routes/experiment_data_router.py b/network/routes/experiment_data_router.py index b4fe05e..2fcb826 100644 --- a/network/routes/experiment_data_router.py +++ b/network/routes/experiment_data_router.py @@ -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)