diff --git a/src/logic/databaseNew/Crud.py b/src/logic/databaseNew/Crud.py index 084cc5c10f912c784cf5e38a981455ce89c737e5..21cab087d034ea9ce97d0c777a5390a368d2d86e 100644 --- a/src/logic/databaseNew/Crud.py +++ b/src/logic/databaseNew/Crud.py @@ -23,6 +23,11 @@ def create_device(db: Session, device: Schemas.DeviceCreate): return dbDevice +def delete_device(db: Session, device: Schemas.Device): + db.delete(device) + db.commit() + + def get_sensors(db: Session, skip: int = 0, limit: int = 100): return db.query(Models.Sensor).offset(skip).limit(limit).all() diff --git a/src/logic/databaseNew/Schemas.py b/src/logic/databaseNew/Schemas.py index cc0e4f260f7cfb7568c67b3945a4ce7f12f9cf57..c82d577bbefcdf47cb099b73e50edef5cc3ec9a2 100644 --- a/src/logic/databaseNew/Schemas.py +++ b/src/logic/databaseNew/Schemas.py @@ -3,6 +3,10 @@ from typing import List from pydantic import BaseModel +class Status(BaseModel): + message: str + + class SensorBase(BaseModel): id: int name: str diff --git a/src/routers/DeviceRouter.py b/src/routers/DeviceRouter.py index dc8f9a366df13411727052d7ef954d8036c79f67..4b509e9479d2b36a211a12ea83e2d277a18701dd 100644 --- a/src/routers/DeviceRouter.py +++ b/src/routers/DeviceRouter.py @@ -5,6 +5,7 @@ from sqlalchemy.orm import Session from Dependencies import get_database from logic.databaseNew import Schemas, Crud +from logic.databaseNew.Schemas import Status router = APIRouter( prefix='/device', @@ -37,3 +38,15 @@ async def create_user(device: Schemas.DeviceCreate, db: Session = Depends(get_da if createdDevice: raise HTTPException(status_code=400, detail='Device with this name already exists') return Crud.create_device(db=db, device=device) + + +@router.delete('/{deviceId}', response_model=Status, + summary='Gets a specific device', + responses={404: {'description': 'Device not found'}}) +async def read_device(deviceId: int, db: Session = Depends(get_database)): + device = Crud.get_device(db, deviceId=deviceId) + if device is None: + raise HTTPException(status_code=404, detail='Device not found') + + Crud.delete_device(db, device) + return Status(message=f"Deleted device {device.id}")