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

Add measurement update route

parent 8333029c
Branches
Tags
No related merge requests found
...@@ -150,6 +150,15 @@ def create_measurement(db: Session, measurement: Schemas.MeasurementCreate) -> M ...@@ -150,6 +150,15 @@ def create_measurement(db: Session, measurement: Schemas.MeasurementCreate) -> M
return dbMeasurement 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) @notify_backup_service(BACKUP_SERVICE)
def delete_measurement(db: Session, measurement: Schemas.Measurement): def delete_measurement(db: Session, measurement: Schemas.Measurement):
db.delete(measurement) db.delete(measurement)
......
...@@ -45,6 +45,10 @@ class MeasurementCreate(BaseModel): ...@@ -45,6 +45,10 @@ class MeasurementCreate(BaseModel):
sensor_id: int sensor_id: int
class MeasurementUpdate(BaseModel):
value: str = Field(..., min_length=1)
# ===== sensor ===== # ===== sensor =====
class SensorBase(BaseModel): class SensorBase(BaseModel):
id: int id: int
......
...@@ -41,6 +41,18 @@ async def create_measurement(measurement: Schemas.MeasurementCreate, db: Session ...@@ -41,6 +41,18 @@ async def create_measurement(measurement: Schemas.MeasurementCreate, db: Session
return Crud.create_measurement(db=db, measurement=measurement) 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, @router.delete('/measurement/{measurementId}', response_model=Status,
summary='Deletes a specific measurementId', summary='Deletes a specific measurementId',
responses={404: {'description': 'Measurement not found'}}, responses={404: {'description': 'Measurement not found'}},
......
...@@ -53,7 +53,7 @@ async def create_sensor(sensor: Schemas.SensorCreate, db: Session = Depends(get_ ...@@ -53,7 +53,7 @@ async def create_sensor(sensor: Schemas.SensorCreate, db: Session = Depends(get_
summary='Updates a sensor', summary='Updates a sensor',
responses={404: {'description': 'Sensor not found'}}, responses={404: {'description': 'Sensor not found'}},
dependencies=[Depends(check_api_key)]) 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) sensorToUpdate = Crud.get_sensor(db, sensorId)
if not sensorToUpdate: if not sensorToUpdate:
raise HTTPException(status_code=404, detail='Sensor not found') raise HTTPException(status_code=404, detail='Sensor not found')
......
{ {
"version": { "version": {
"name": "v2.0.4", "name": "v2.0.5",
"code": 12, "code": 13,
"date": "17.01.21" "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