145 lines
No EOL
4.8 KiB
Python
145 lines
No EOL
4.8 KiB
Python
from actions.dynamic_import.dynamic_import import DynamicImport
|
|
from packages.v1.administrativo.schemas.user_schema import (
|
|
UserSchema,
|
|
UserAuthenticateSchema,
|
|
UserSaveSchema,
|
|
UserUpdateSchema,
|
|
UserEmailSchema,
|
|
UserIdSchema
|
|
)
|
|
|
|
class UserController:
|
|
|
|
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("user")
|
|
pass
|
|
|
|
# Efetua o acesso junto ao sistema por um determinado usuário
|
|
def authenticate(self, user_authenticate_schema : UserAuthenticateSchema):
|
|
|
|
# Importação de service de Authenticate
|
|
authenticate_service = self.dynamic_import.service("user_authenticate_service", "AuthenticateService")
|
|
|
|
# Instânciamento da service
|
|
self.authenticate_service = authenticate_service()
|
|
|
|
# Retorna o usuário logado
|
|
return {
|
|
'message' : 'Usuário localizado com sucesso',
|
|
'data' : {
|
|
'token' : self.authenticate_service.execute(user_authenticate_schema)
|
|
}
|
|
}
|
|
|
|
# Carrega os dados do usuário logado
|
|
def me(self, current_user):
|
|
|
|
# Importação de service de authenticate
|
|
me_service = self.dynamic_import.service("user_me_service", "MeService")
|
|
|
|
# Instânciamento da service
|
|
self.me_service = me_service()
|
|
|
|
# Retorna o usuário logado
|
|
return {
|
|
'message' : 'Usuário localizado com sucesso',
|
|
'data' : self.me_service.execute(current_user)
|
|
}
|
|
|
|
# Lista todos os usuários
|
|
def index(self):
|
|
|
|
# Importação da classe desejada
|
|
indexService = self.dynamic_import.service("user_index_service", "IndexService")
|
|
|
|
# Instânciamento da classe service
|
|
self.indexService = indexService()
|
|
|
|
# Lista todos os usuários
|
|
return {
|
|
'message': 'Usuários localizados com sucesso',
|
|
'data': self.indexService.execute()
|
|
}
|
|
|
|
# Busca um usuário especifico pelo ID
|
|
def show(self, usuario_schema : UserSchema):
|
|
|
|
#Importação da classe desejada
|
|
show_service = self.dynamic_import.service('user_show_service', 'ShowService')
|
|
|
|
# Instânciamento da classe desejada
|
|
self.show_service = show_service()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
'message' : 'Usuário localizado com sucesso',
|
|
'data': self.show_service.execute(usuario_schema)
|
|
}
|
|
|
|
|
|
# Busca um usuário especifico pelo e-mail
|
|
def getEmail(self, usuario_schema : UserEmailSchema):
|
|
|
|
#Importação da classe desejada
|
|
get_email_service = self.dynamic_import.service('user_get_email_service', 'GetEmailService')
|
|
|
|
# Instânciamento da classe desejada
|
|
self.get_email_service = get_email_service()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
'message' : 'E-mail localizado com sucesso',
|
|
'data': self.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 : UserSaveSchema):
|
|
|
|
#Importação da classe desejada
|
|
save_service = self.dynamic_import.service('user_save_service', 'UserSaveService')
|
|
|
|
# Instânciamento da classe desejada
|
|
self.save_service = save_service()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
'message' : 'Usuário salvo com sucesso',
|
|
'data': self.save_service.execute(usuario_schema)
|
|
}
|
|
|
|
# Atualiza os dados de um usuário
|
|
def update(self, user_id: int, usuario_schema : UserUpdateSchema):
|
|
|
|
#Importação da classe desejada
|
|
save_service = self.dynamic_import.service('user_update_service', 'UserUpdateService')
|
|
|
|
# Instânciamento da classe desejada
|
|
self.save_service = save_service()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
'message' : 'Usuário atualizado com sucesso',
|
|
'data': self.save_service.execute(user_id, usuario_schema)
|
|
}
|
|
|
|
# Exclui um usuário
|
|
def delete(self, usuario_schema : UserIdSchema):
|
|
|
|
#Importação da classe desejada
|
|
delete_service = self.dynamic_import.service('user_delete_service', 'DeleteService')
|
|
|
|
# Instânciamento da classe desejada
|
|
self.delete_service = delete_service()
|
|
|
|
# Busca e retorna o usuário desejado
|
|
return {
|
|
'message' : 'Usuário removido com sucesso',
|
|
'data': self.delete_service.execute(usuario_schema)
|
|
} |