ligbox-ops-platform/projects/wizard/deploy/vm112-spec022/admin_accounts.py
Ligbox Spec Hub 821675ab4a Reorganize monorepo into projects/wizard, ops-desk, finance
Specs stay at repo root (cross-VM). Move deploy and code into logical
projects with README per domain, updated manifest.yaml, and symlinks at
legacy paths for VM122 backward compatibility.
2026-06-19 18:55:03 +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