fix(keenetic): safe delete URLs and not-found handling

Encode router names in Keenetic API calls and return an error when delete targets a missing device.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Андрей Бобырев
2026-05-29 19:38:43 +03:00
parent 50b4dac52e
commit 11eb3d3c45
3 changed files with 13 additions and 6 deletions

View File

@@ -320,6 +320,8 @@ async def keenetic_update(name: str, request: Request, user: str = Depends(requi
@router.delete("/{name}")
async def keenetic_delete(name: str, request: Request, user: str = Depends(require_auth)):
devices = _load_keenetic()
if not any(d["name"] == name for d in devices):
return {"status": "error", "detail": "router not found"}
devices = [d for d in devices if d["name"] != name]
_save_keenetic(devices)
keenetic_metrics.pop(name, None)