Add endpoint to delete device configuration and associated status data
This commit is contained in:
@@ -156,6 +156,34 @@ def get_config(unit_id: str, db: Session = Depends(get_db)):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete("/{unit_id}/config")
|
||||||
|
def delete_config(unit_id: str, db: Session = Depends(get_db)):
|
||||||
|
"""
|
||||||
|
Delete device configuration and associated status data.
|
||||||
|
|
||||||
|
Used by Terra-View to remove devices from SLMM when deleted from roster.
|
||||||
|
"""
|
||||||
|
cfg = db.query(NL43Config).filter_by(unit_id=unit_id).first()
|
||||||
|
if not cfg:
|
||||||
|
raise HTTPException(status_code=404, detail="NL43 config not found")
|
||||||
|
|
||||||
|
# Also delete associated status record
|
||||||
|
status = db.query(NL43Status).filter_by(unit_id=unit_id).first()
|
||||||
|
if status:
|
||||||
|
db.delete(status)
|
||||||
|
logger.info(f"Deleted status record for {unit_id}")
|
||||||
|
|
||||||
|
db.delete(cfg)
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
logger.info(f"Deleted device config for {unit_id}")
|
||||||
|
|
||||||
|
return {
|
||||||
|
"status": "ok",
|
||||||
|
"message": f"Deleted device {unit_id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{unit_id}/config")
|
@router.put("/{unit_id}/config")
|
||||||
async def upsert_config(unit_id: str, payload: ConfigPayload, db: Session = Depends(get_db)):
|
async def upsert_config(unit_id: str, payload: ConfigPayload, db: Session = Depends(get_db)):
|
||||||
cfg = db.query(NL43Config).filter_by(unit_id=unit_id).first()
|
cfg = db.query(NL43Config).filter_by(unit_id=unit_id).first()
|
||||||
|
|||||||
Reference in New Issue
Block a user