Skip to content
Snippets Groups Projects
Commit bd31e427 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

added route to update sensor name and type

parent 814aec23
No related branches found
No related tags found
No related merge requests found
......@@ -87,6 +87,16 @@ def create_sensor(db: Session, sensor: Schemas.SensorCreate):
return dbSensor
@notify_backup_service(BACKUP_SERVICE)
def update_sensor(db: Session, sensorId: int, sensor: Schemas.SensorUpdate):
existingSensor = get_sensor(db, sensorId)
existingSensor.name = sensor.name
existingSensor.type = sensor.type
db.commit()
db.refresh(existingSensor)
return existingSensor
@notify_backup_service(BACKUP_SERVICE)
def delete_sensor(db: Session, sensor: Schemas.Sensor):
db.delete(sensor)
......
......@@ -61,6 +61,11 @@ class SensorCreate(BaseModel):
deviceId: int
class SensorUpdate(BaseModel):
name: str
type: str
class Sensor(SensorBase):
id: int
name: str
......
......@@ -49,6 +49,25 @@ async def create_sensor(sensor: Schemas.SensorCreate, db: Session = Depends(get_
return Crud.create_sensor(db=db, sensor=sensor)
@router.put('/{sensorId}', response_model=Schemas.Sensor,
summary='Updates a sensor',
responses={404: {'description': 'Sensor not found'}},
dependencies=[Depends(check_api_key)])
async def update_device(sensorId: int, sensor: Schemas.SensorUpdate, db: Session = Depends(get_database)):
sensorToUpdate = Crud.get_sensor(db, sensorId)
if not sensorToUpdate:
raise HTTPException(status_code=404, detail='Sensor not found')
if sensorToUpdate.name != sensor.name:
existingSensor = Crud.get_sensor_by_name_and_device_id(db, sensor.name, sensorToUpdate.deviceId)
if existingSensor:
raise HTTPException(status_code=400,
detail=f'A sensor called "{sensor.name}" already exists '
f'(ID: {existingSensor.id}) for device {sensorToUpdate.deviceId}')
return Crud.update_sensor(db=db, sensorId=sensorId, sensor=sensor)
@router.delete('/{sensorId}', response_model=Status,
summary='Deletes a specific sensor',
description='All corresponding measurements will be deleted too.',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment