This commit is contained in:
2026-01-17 08:01:23 +00:00
parent 23b605becf
commit d3d61067db

View File

@@ -214,6 +214,11 @@ class BCSApiView(HomeAssistantView):
self.core: BCSCore = core self.core: BCSCore = core
async def get(self, request: web.Request) -> web.Response: async def get(self, request: web.Request) -> web.Response:
# Ensure UI state is correct even if users deleted integration folders manually.
try:
await self.core.reconcile_installed()
except Exception:
pass
return web.json_response( return web.json_response(
{"ok": True, "version": self.core.version, "repos": self.core.list_repos_public()} {"ok": True, "version": self.core.version, "repos": self.core.list_repos_public()}
) )
@@ -334,6 +339,27 @@ class BCSUpdateView(HomeAssistantView):
return web.json_response({"ok": False, "message": str(e) or "Update failed"}, status=500) return web.json_response({"ok": False, "message": str(e) or "Update failed"}, status=500)
class BCSUninstallView(HomeAssistantView):
url = "/api/bcs/uninstall"
name = "api:bcs_uninstall"
requires_auth = True
def __init__(self, core: Any) -> None:
self.core: BCSCore = core
async def post(self, request: web.Request) -> web.Response:
repo_id = request.query.get("repo_id")
if not repo_id:
return web.json_response({"ok": False, "message": "Missing repo_id"}, status=400)
try:
result = await self.core.uninstall_repo(repo_id)
return web.json_response(result, status=200)
except Exception as e:
_LOGGER.exception("BCS uninstall failed: %s", e)
return web.json_response({"ok": False, "message": str(e) or "Uninstall failed"}, status=500)
class BCSRestartView(HomeAssistantView): class BCSRestartView(HomeAssistantView):
url = "/api/bcs/restart" url = "/api/bcs/restart"
name = "api:bcs_restart" name = "api:bcs_restart"