diff --git a/app/api/v1/routes/campaigns/campaign_station_sensors.py b/app/api/v1/routes/campaigns/campaign_station_sensors.py index cf74d0f..4cd8876 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_sensor_id( + 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) + ) + 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") + + return Response(status_code=204) \ No newline at end of file