44 lines
1.3 KiB
Python
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)
|