15 lines
792 B
Python
15 lines
792 B
Python
|
|
def delete_carbonio_account(email: str) -> dict:
|
|
"""Remove uma conta Carbonio (zmprov da) — Spec 022."""
|
|
email = email.lower().strip()
|
|
if "@" not in email:
|
|
raise ValueError("e-mail inválido")
|
|
domain = email.split("@", 1)[1]
|
|
assert_purge_allowed(domain)
|
|
if not carbonio.account_exists(email):
|
|
return {"ok": True, "email": email, "message": "Conta já não existia", "skipped": True}
|
|
code, out, err = carbonio._zmprov_run("da", email, log_cmd=True)
|
|
if code != 0 and not carbonio._is_missing_account(err, out):
|
|
raise carbonio.CarbonioError(err or out or f"zmprov da falhou para {email}")
|
|
carbonio.invalidate_domain_cache(domain)
|
|
return {"ok": True, "email": email, "message": f"Conta {email} removida do Carbonio", "rc": code}
|