Skip to content
Snippets Groups Projects
Commit a6d1b389 authored by Tobias Ullerich's avatar Tobias Ullerich
Browse files

Add measurement update route

parent 8333029c
No related branches found
No related tags found
No related merge requests found
......@@ -150,6 +150,15 @@ def create_measurement(db: Session, measurement: Schemas.MeasurementCreate) -> M
return dbMeasurement
@notify_backup_service(BACKUP_SERVICE)
def update_measurement(db: Session, measurementId: int, measurement: Schemas.MeasurementUpdate) -> Models.Measurement:
existingMeasurement = get_measurement(db, measurementId)
existingMeasurement.value = measurement.value
db.commit()
db.refresh(existingMeasurement)
return existingMeasurement
@notify_backup_service(BACKUP_SERVICE)
def delete_measurement(db: Session, measurement: Schemas.Measurement):
db.delete(measurement)
......
......@@ -45,6 +45,10 @@ class MeasurementCreate(BaseModel):
sensor_id: int
class MeasurementUpdate(BaseModel):
value: str = Field(..., min_length=1)
# ===== sensor =====
class SensorBase(BaseModel):
id: int
......
......@@ -41,6 +41,18 @@ async def create_measurement(measurement: Schemas.MeasurementCreate, db: Session
return Crud.create_measurement(db=db, measurement=measurement)
@router.put('/measurement/{measurementId}', response_model=Schemas.Measurement,
summary='Update a specific measurement',
responses={404: {'description': 'Measurement not found'}},
dependencies=[Depends(check_api_key)])
async def update_measurement(measurementId: int, measurement: Schemas.MeasurementUpdate, db: Session = Depends(get_database)):
existingMeasurement = Crud.get_measurement(db, measurementId)
if existingMeasurement is None:
raise HTTPException(status_code=404, detail='Measurement not found')
return Crud.update_measurement(db, measurementId=measurementId, measurement=measurement)
@router.delete('/measurement/{measurementId}', response_model=Status,
summary='Deletes a specific measurementId',
responses={404: {'description': 'Measurement not found'}},
......
......@@ -53,7 +53,7 @@ async def create_sensor(sensor: Schemas.SensorCreate, db: Session = Depends(get_
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)):
async def update_sensor(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')
......
{
"version": {
"name": "v2.0.4",
"code": 12,
"date": "17.01.21"
"name": "v2.0.5",
"code": 13,
"date": "30.01.21"
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment