44
55from app .api .dependencies .auth import get_current_user
66from app .api .dependencies .pytas import check_allocation_permission
7- from app .api .v1 .schemas .sensor import SensorItem , GetSensorResponse , ListSensorsResponsePagination , SensorStatistics , SensorCreateResponse , SensorUpdate , ForceUpdateSensorStatisticsResponse
7+ from app .api .v1 .schemas .sensor import SensorItem , GetSensorResponse , ListSensorsResponsePagination , SensorStatistics , SensorCreateResponse , SensorUpdate , ForceUpdateSensorStatisticsResponse , UpdateSensorStatisticsResponse
88from app .api .v1 .schemas .user import User
99from app .db .session import get_db
1010from app .db .repositories .sensor_repository import SensorRepository , SortField
@@ -158,4 +158,25 @@ def force_update_sensor_statistics(
158158 measurement_repository = MeasurementRepository (db )
159159 )
160160
161- return sensor_service .force_update_station_sensor_statistics (station_id )
161+ return sensor_service .force_update_station_sensor_statistics (station_id )
162+
163+
164+ @router .post ("/sensors/{sensor_id}/statistics" ,
165+ response_model = UpdateSensorStatisticsResponse ,
166+ description = "Force update sensor statistics for a single sensor" )
167+ def force_update_single_sensor_statistics (
168+ campaign_id : int ,
169+ station_id : int ,
170+ sensor_id : int ,
171+ db : Session = Depends (get_db ),
172+ current_user : User = Depends (get_current_user ),
173+ ) -> UpdateSensorStatisticsResponse :
174+ if not check_allocation_permission (current_user , campaign_id ):
175+ raise HTTPException (status_code = 404 , detail = "Allocation is incorrect" )
176+
177+ sensor_service = SensorService (
178+ sensor_repository = SensorRepository (db ),
179+ measurement_repository = MeasurementRepository (db )
180+ )
181+
182+ return sensor_service .force_update_single_sensor_statistics (sensor_id )
0 commit comments