145 lines
4.5 KiB
Python
145 lines
4.5 KiB
Python
from actions.dynamic_import.dynamic_import import DynamicImport
|
|
from packages.v1.administrativo.services.usuario.usuario_authenticate_service import (
|
|
AuthenticateService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_me_service import (
|
|
MeService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_index_service import (
|
|
IndexService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_save_service import (
|
|
SaveService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_get_email_service import (
|
|
GetEmailService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_show_service import (
|
|
ShowService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_update_service import (
|
|
UpdateService,
|
|
)
|
|
from packages.v1.administrativo.services.usuario.usuario_delete_service import (
|
|
DeleteService,
|
|
)
|
|
from packages.v1.administrativo.schemas.usuario_schema import (
|
|
UsuarioSchema,
|
|
UsuarioAuthenticateSchema,
|
|
UsuarioSaveSchema,
|
|
UsuarioUpdateSchema,
|
|
UsuarioEmailSchema,
|
|
UsuarioIdSchema,
|
|
)
|
|
|
|
|
|
class UsuarioController:
|
|
|
|
def __init__(self):
|
|
# Action responsável por carregar as services de acodo com o estado
|
|
self.dynamic_import = DynamicImport()
|
|
|
|
# Define o pacote que deve ser carregado
|
|
self.dynamic_import.set_package("administrativo")
|
|
|
|
# Define a tabela que o pacote pertence
|
|
self.dynamic_import.set_table("usuario")
|
|
pass
|
|
|
|
# Efetua o acesso junto ao sistema por um determinado usuário
|
|
def authenticate(self, user_authenticate_schema: UsuarioAuthenticateSchema):
|
|
|
|
# Importação de service de Authenticate
|
|
authenticate_service = AuthenticateService()
|
|
|
|
# Retorna o usuário logado
|
|
return {
|
|
"message": "Usuário localizado com sucesso",
|
|
"data": {"token": authenticate_service.execute(user_authenticate_schema)},
|
|
}
|
|
|
|
# Carrega os dados do usuário logado
|
|
def me(self, current_user):
|
|
|
|
# Instânciamento da service
|
|
me_service = MeService()
|
|
|
|
# Retorna o usuário logado
|
|
return {
|
|
"message": "Usuário localizado com sucesso",
|
|
"data": me_service.execute(current_user),
|
|
}
|
|
|
|
# Lista todos os usuários
|
|
def index(self):
|
|
|
|
# Instânciamento da classe service
|
|
indexService = IndexService()
|
|
|
|
# Lista todos os usuários
|
|
return {
|
|
"message": "Usuários localizados com sucesso",
|
|
"data": indexService.execute(),
|
|
}
|
|
|
|
# Busca um usuário especifico pelo ID
|
|
def show(self, usuario_schema: UsuarioSchema):
|
|
|
|
# Instânciamento da classe desejada
|
|
show_service = ShowService()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
"message": "Usuário localizado com sucesso",
|
|
"data": show_service.execute(usuario_schema),
|
|
}
|
|
|
|
# Busca um usuário especifico pelo e-mail
|
|
def getEmail(self, usuario_schema: UsuarioEmailSchema):
|
|
|
|
# Instânciamento da classe desejada
|
|
get_email_service = GetEmailService()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
"message": "E-mail localizado com sucesso",
|
|
"data": get_email_service.execute(
|
|
usuario_schema, True
|
|
), # True para retornar a mensagem de erro caso não localize o usuario
|
|
}
|
|
|
|
# Cadastra um novo usuário
|
|
def save(self, usuario_schema: UsuarioSaveSchema):
|
|
|
|
# Instânciamento da classe desejada
|
|
save_service = SaveService()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
"message": "Usuário salvo com sucesso",
|
|
"data": save_service.execute(usuario_schema),
|
|
}
|
|
|
|
# Atualiza os dados de um usuário
|
|
def update(self, usuario_id: int, usuario_schema: UsuarioUpdateSchema):
|
|
|
|
# Instânciamento da classe desejada
|
|
update_service = UpdateService()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
"message": "Usuário atualizado com sucesso",
|
|
"data": update_service.execute(usuario_id, usuario_schema),
|
|
}
|
|
|
|
# Exclui um usuário
|
|
def delete(self, usuario_schema: UsuarioIdSchema):
|
|
|
|
# Instânciamento da classe desejada
|
|
delete_service = DeleteService()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
"message": "Usuário removido com sucesso",
|
|
"data": delete_service.execute(usuario_schema),
|
|
}
|