api-admim/app/routers/router_tenant_admin.py

38 lines
1.4 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, HTTPException, status
from app.schemas.tenant_admin import NovoInquilinoRequest, NovoInquilinoResponse
from app.multi_tenant.onboarding.novo_inquilino_service import (
criar_novo_inquilino_service,
NovoInquilinoResult,
NovoInquilinoError,
)
router = APIRouter(prefix="/admin/tenants", tags=["Admin - Tenants"])
@router.post("", status_code=status.HTTP_201_CREATED, response_model=NovoInquilinoResponse)
async def criar_novo_inquilino(payload: NovoInquilinoRequest) -> NovoInquilinoResponse:
try:
print("try")
result: NovoInquilinoResult = await criar_novo_inquilino_service(
nome=payload.nome,
email=payload.email,
password=payload.password,
cpf_cnpj=payload.cpf_cnpj, # já vem sanitizado/validado
)
return NovoInquilinoResponse(
tenant=result.tenant,
status=result.status,
alembic_stdout=result.alembic_stdout,
# campos opcionais; preencha se o seu serviço retornar
schema_name=None,
)
except NovoInquilinoError as e:
print("except NovoInquilinoError as e")
raise HTTPException(status_code=500, detail=str(e))
# except Exception as e:
# print("except NovoInquilinoError as e")
# raise HTTPException(status_code=500, detail=f"Erro inesperado: {e}")