38 lines
1.4 KiB
Python
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}")
|