MirrorAPI/packages/v1/administrativo/controllers/ato_documento_controller.py
2025-11-03 15:18:26 -03:00

113 lines
3.6 KiB
Python

from actions.dynamic_import.dynamic_import import DynamicImport
from packages.v1.administrativo.services.ato_documento.ato_documento_index_service import (
IndexService,
)
from packages.v1.administrativo.services.ato_documento.ato_documento_save_service import (
SaveService,
)
from packages.v1.administrativo.services.ato_documento.ato_documento_show_service import (
ShowService,
)
from packages.v1.administrativo.services.ato_documento.ato_principal_show_service import (
ShowAtoPrincipalService,
)
from packages.v1.administrativo.services.ato_documento.ato_documento_update_service import (
UpdateService,
)
from packages.v1.administrativo.services.ato_documento.ato_documento_delete_service import (
DeleteService,
)
from packages.v1.administrativo.schemas.ato_documento_schema import (
AtoDocumentoSchema,
AtoDocumentoSaveSchema,
AtoDocumentoUpdateSchema,
AtoDocumentoIdSchema,
)
class AtoDocumentoController:
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("ato_documento")
pass
# Lista todos os documentos
def index(self):
# Instânciamento da classe service
index_service = IndexService()
# Lista todos os documentos
return {
"message": "Documentos localizados com sucesso",
"data": index_service.execute(),
}
# Busca um documento especifico pelo ID do ato principal
def showAtoPrincipal(self, ato_documento_schema: AtoDocumentoSchema):
# Instânciamento da classe desejada
show_service = ShowAtoPrincipalService()
# Busca e retorna o documento desejado
return {
"message": "Documento localizado com sucesso",
"data": show_service.execute(ato_documento_schema),
}
# Busca um documento especifico pelo ID
def show(self, ato_documento_schema: AtoDocumentoSchema):
# Instânciamento da classe desejada
show_service = ShowService()
# Busca e retorna o documento desejado
return {
"message": "Documento localizado com sucesso",
"data": show_service.execute(ato_documento_schema),
}
# Cadastra um novo documento
def save(self, ato_documento_schema: AtoDocumentoSaveSchema):
# Instânciamento da classe desejada
save_service = SaveService()
# Busca e retorna o documento desejado
return {
"message": "Documento salvo com sucesso",
"data": save_service.execute(ato_documento_schema),
}
# Atualiza os dados de um documento
def update(
self, ato_documento_id: int, ato_documento_schema: AtoDocumentoUpdateSchema
):
# Instânciamento da classe desejada
update_service = UpdateService()
# Busca e retorna o documento desejado
return {
"message": "Documento atualizado com sucesso",
"data": update_service.execute(ato_documento_id, ato_documento_schema),
}
# Exclui um documento
def delete(self, ato_documento_schema: AtoDocumentoSchema):
# Instânciamento da classe desejada
delete_service = DeleteService()
# Busca e retorna o documento desejado
return {
"message": "Documento removido com sucesso",
"data": delete_service.execute(ato_documento_schema),
}