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)