From 877ea752c3d615e019264e4285fadeb0f4b4fb0c Mon Sep 17 00:00:00 2001 From: Will Mobley Date: Wed, 1 Oct 2025 14:44:00 -0500 Subject: [PATCH 1/3] Update campaign_station_sensors.py --- .../campaigns/campaign_station_sensors.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/app/api/v1/routes/campaigns/campaign_station_sensors.py b/app/api/v1/routes/campaigns/campaign_station_sensors.py index cf74d0f..73daeea 100644 --- a/app/api/v1/routes/campaigns/campaign_station_sensors.py +++ b/app/api/v1/routes/campaigns/campaign_station_sensors.py @@ -179,4 +179,26 @@ def force_update_single_sensor_statistics( measurement_repository=MeasurementRepository(db) ) - return sensor_service.force_update_single_sensor_statistics(sensor_id) \ No newline at end of file + return sensor_service.force_update_single_sensor_statistics(sensor_id) + +@router.delete("/sensors/{sensor_id}", status_code=204) +def delete_sensor( + campaign_id: int, + station_id: int, + sensor_id: int, + db: Session = Depends(get_db), + current_user: User = Depends(get_current_user), +) -> Response: + if not check_allocation_permission(current_user, campaign_id): + raise HTTPException(status_code=404, detail="Allocation is incorrect") + + sensor_service = SensorService( + sensor_repository=SensorRepository(db), + measurement_repository=MeasurementRepository(db) + ) + + success = sensor_service.delete_sensor(sensor_id) + if not success: + raise HTTPException(status_code=404, detail="Sensor not found") + + return Response(status_code=204) \ No newline at end of file From f56f1259c1bb0b4130f94a7760af5f996672160f Mon Sep 17 00:00:00 2001 From: Will Mobley Date: Wed, 1 Oct 2025 14:52:16 -0500 Subject: [PATCH 2/3] Update campaign_station_sensors.py --- app/api/v1/routes/campaigns/campaign_station_sensors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/v1/routes/campaigns/campaign_station_sensors.py b/app/api/v1/routes/campaigns/campaign_station_sensors.py index 73daeea..4ddc599 100644 --- a/app/api/v1/routes/campaigns/campaign_station_sensors.py +++ b/app/api/v1/routes/campaigns/campaign_station_sensors.py @@ -196,7 +196,7 @@ def delete_sensor( sensor_repository=SensorRepository(db), measurement_repository=MeasurementRepository(db) ) - + success = sensor_service.delete_sensor_measurements(sensor_id) success = sensor_service.delete_sensor(sensor_id) if not success: raise HTTPException(status_code=404, detail="Sensor not found") From 3e6bab00b2cf4acea9b0b9b906996744d306d30c Mon Sep 17 00:00:00 2001 From: Will Mobley Date: Wed, 1 Oct 2025 14:59:25 -0500 Subject: [PATCH 3/3] Update campaign_station_sensors.py --- app/api/v1/routes/campaigns/campaign_station_sensors.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/v1/routes/campaigns/campaign_station_sensors.py b/app/api/v1/routes/campaigns/campaign_station_sensors.py index 4ddc599..4cd8876 100644 --- a/app/api/v1/routes/campaigns/campaign_station_sensors.py +++ b/app/api/v1/routes/campaigns/campaign_station_sensors.py @@ -182,7 +182,7 @@ def force_update_single_sensor_statistics( return sensor_service.force_update_single_sensor_statistics(sensor_id) @router.delete("/sensors/{sensor_id}", status_code=204) -def delete_sensor( +def delete_sensor_sensor_id( campaign_id: int, station_id: int, sensor_id: int, @@ -196,7 +196,7 @@ def delete_sensor( sensor_repository=SensorRepository(db), measurement_repository=MeasurementRepository(db) ) - success = sensor_service.delete_sensor_measurements(sensor_id) + sensor_service.delete_sensor_measurements(sensor_id) success = sensor_service.delete_sensor(sensor_id) if not success: raise HTTPException(status_code=404, detail="Sensor not found")