From 185b0aae58dbd450adb1ca52724a8aa442ecae5c Mon Sep 17 00:00:00 2001 From: anastasia-sl Date: Thu, 26 Feb 2026 14:55:51 +0200 Subject: [PATCH] implemented update and delete endpoints --- store/main.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/store/main.py b/store/main.py index 272a646..4b20dfe 100644 --- a/store/main.py +++ b/store/main.py @@ -152,7 +152,41 @@ def list_processed_agent_data(): ) def update_processed_agent_data(processed_agent_data_id: int, data: ProcessedAgentData): # Update data - pass + session = SessionLocal() + + try: + query = select(processed_agent_data).where( + processed_agent_data.c.id == processed_agent_data_id + ) + result = session.execute(query).fetchone() + + if not result: + raise HTTPException(status_code=404, detail="Data not found") + + update_query = ( + processed_agent_data.update() + .where(processed_agent_data.c.id == processed_agent_data_id) + .values( + road_state=data.road_state, + user_id=data.agent_data.user_id, + x=data.agent_data.accelerometer.x, + y=data.agent_data.accelerometer.y, + z=data.agent_data.accelerometer.z, + latitude=data.agent_data.gps.latitude, + longitude=data.agent_data.gps.longitude, + timestamp=data.agent_data.timestamp, + ) + ) + + session.execute(update_query) + session.commit() + + updated_result = session.execute(query).fetchone() + + return ProcessedAgentDataInDB(**updated_result._mapping) + + finally: + session.close() @app.delete( @@ -161,8 +195,28 @@ def update_processed_agent_data(processed_agent_data_id: int, data: ProcessedAge ) def delete_processed_agent_data(processed_agent_data_id: int): # Delete by id - pass + session = SessionLocal() + try: + query = select(processed_agent_data).where( + processed_agent_data.c.id == processed_agent_data_id + ) + result = session.execute(query).fetchone() + + if not result: + raise HTTPException(status_code=404, detail="Data not found") + + delete_query = processed_agent_data.delete().where( + processed_agent_data.c.id == processed_agent_data_id + ) + + session.execute(delete_query) + session.commit() + + return ProcessedAgentDataInDB(**result._mapping) + + finally: + session.close() if __name__ == "__main__": import uvicorn