MirrorAPI/packages/v1/administrativo/services/usuario/usuario_save_service.py
2025-11-03 15:18:26 -03:00

44 lines
1.3 KiB
Python

from fastapi import status, HTTPException
from packages.v1.administrativo.schemas.usuario_schema import (
UsuarioSaveSchema,
UsuarioEmailSchema,
)
from packages.v1.administrativo.services.usuario.usuario_get_email_service import (
GetEmailService,
)
from packages.v1.administrativo.actions.usuario.usuario_save_action import SaveAction
class SaveService:
def execute(self, usuario_schema: UsuarioSaveSchema):
# Armazena possíveis erros
errors = []
# Instânciamento da service
email_service = GetEmailService()
# Verifica se o email já esta sendo utilizado
self.response = email_service.execute(
UsuarioEmailSchema(email=usuario_schema.email), False
)
# Se houver retorno significa que o e-mail já esta sendo utiizado
if self.response:
errors.append(
{
"input": "email",
"message": "O e-mail informado já esta sendo utilizado.",
}
)
# Se houver erros, informo
if errors:
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=errors)
# Instânciamento de ações
saveAction = SaveAction()
# Retorna todos produtos desejados
return saveAction.execute(usuario_schema)