ligbox-ops-platform/deploy/vm112-spec022/admin_accounts.py
Ligbox Spec Hub 3a2c64834b Initial import: ligbox-ops-platform + specs + LAPTOP + obsidian merge (CT130)
Source: VM122 /opt + obsidian-infra + LAPTOP
Hub: CT130 spec-hub 10.10.10.130
2026-06-19 17:26:41 +00:00

25 lines
869 B
Python

"""API admin — conta Carbonio individual (Desk Spec 022)."""
from fastapi import APIRouter, Depends, Header, HTTPException
from app.config import settings
from app.services import carbonio, domain_orchestration
router = APIRouter(prefix="/admin/accounts", tags=["admin-accounts"])
def require_api_key(x_api_key: str | None = Header(default=None, alias="X-Api-Key")):
if x_api_key != settings.admin_api_key:
raise HTTPException(401, "API key inválida")
return True
@router.post("/{email}/delete", dependencies=[Depends(require_api_key)])
def delete_account(email: str):
email = email.lower().strip()
try:
return domain_orchestration.delete_carbonio_account(email)
except ValueError as e:
raise HTTPException(400, str(e)) from e
except carbonio.CarbonioError as e:
raise HTTPException(400, str(e)) from e