[MVPTN-103] fix(SQL): Ajusta a listagem por SISTEMA_ID
This commit is contained in:
parent
642f2ed826
commit
17a1146f04
6 changed files with 128 additions and 1 deletions
|
|
@ -0,0 +1,25 @@
|
|||
from abstracts.action import BaseAction
|
||||
from api.packages.v1.administrativo.repositories.g_natureza.g_natureza_index_by_sistema_id_repository import IndexBySistemaIdRepository
|
||||
from api.packages.v1.administrativo.schemas.g_natureza_schema import GNaturezaSistemaIdSchema
|
||||
|
||||
class IndexActionBySistemaId(BaseAction):
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||
de listagem de todos os registros na tabela g_natureza.
|
||||
"""
|
||||
|
||||
def execute(self, g_natureza_sistema_id_schema: GNaturezaSistemaIdSchema):
|
||||
"""
|
||||
Executa a operação de listagem no banco de dados.
|
||||
|
||||
Returns:
|
||||
A lista de todos os registros.
|
||||
"""
|
||||
# Instanciamento do repositório
|
||||
index_repository = IndexBySistemaIdRepository()
|
||||
|
||||
# Execução do repositório
|
||||
response = index_repository.execute(g_natureza_sistema_id_schema)
|
||||
|
||||
# Retorno da informação
|
||||
return response
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||
from packages.v1.administrativo.schemas.g_natureza_schema import (
|
||||
GNaturezaSchema,
|
||||
GNaturezaSaveSchema,
|
||||
GNaturezaSistemaIdSchema,
|
||||
GNaturezaUpdateSchema,
|
||||
GNaturezaIdSchema,
|
||||
GNaturezaDescricaoSchema
|
||||
|
|
@ -34,6 +34,21 @@ class GNaturezaController:
|
|||
'message': 'Registros de natureza localizados com sucesso',
|
||||
'data': self.indexService.execute()
|
||||
}
|
||||
|
||||
# Lista todos os registros de natureza
|
||||
def indexBySistemaId(self, g_natureza_sistema_id_schema: GNaturezaSistemaIdSchema):
|
||||
|
||||
# Importação da classe desejada
|
||||
indexService = self.dynamic_import.service("g_natureza_index_by_sistema_id_service", "IndexBySistemaIdService")
|
||||
|
||||
# Instância da classe service
|
||||
self.indexService = indexService()
|
||||
|
||||
# Lista todos os registros de natureza
|
||||
return {
|
||||
'message': 'Registros de natureza localizados com sucesso',
|
||||
'data': self.indexService.execute(g_natureza_sistema_id_schema)
|
||||
}
|
||||
|
||||
|
||||
# Busca um registro de natureza específico pelo ID
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ from packages.v1.administrativo.controllers.g_natureza_controller import GNature
|
|||
from packages.v1.administrativo.schemas.g_natureza_schema import (
|
||||
GNaturezaSchema,
|
||||
GNaturezaSaveSchema,
|
||||
GNaturezaSistemaIdSchema,
|
||||
GNaturezaUpdateSchema,
|
||||
GNaturezaIdSchema
|
||||
)
|
||||
|
|
@ -29,6 +30,25 @@ async def index(current_user: dict = Depends(get_current_user)):
|
|||
# Retorna os dados localizados
|
||||
return response
|
||||
|
||||
# Lista todos os registros de natureza
|
||||
@router.get(
|
||||
"/sistema/{sistema_id}",
|
||||
status_code=status.HTTP_200_OK,
|
||||
summary="Lista todos os registros de natureza cadastrados",
|
||||
response_description="Lista todos os registros de natureza cadastrados"
|
||||
)
|
||||
async def index_by_sistema_id(
|
||||
sistema_id: int,
|
||||
current_user: dict = Depends(get_current_user)
|
||||
):
|
||||
# Cria o schema com os dados recebidos
|
||||
natureza_schema = GNaturezaSistemaIdSchema(sistema_id=sistema_id)
|
||||
|
||||
# Chama o controller (sem await)
|
||||
response = g_natureza_controller.indexBySistemaId(natureza_schema)
|
||||
|
||||
# Retorna os dados
|
||||
return response
|
||||
|
||||
# Localiza um registro de natureza pela descrição
|
||||
@router.get('/descricao',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
from abstracts.repository import BaseRepository
|
||||
from api.packages.v1.administrativo.schemas.g_natureza_schema import GNaturezaSistemaIdSchema
|
||||
|
||||
class IndexBySistemaIdRepository(BaseRepository):
|
||||
"""
|
||||
Repositório para a operação de listagem de todos os registros
|
||||
na tabela g_natureza.
|
||||
"""
|
||||
|
||||
def execute(self, g_natureza_sistema_id_schema: GNaturezaSistemaIdSchema):
|
||||
"""
|
||||
Executa a consulta SQL para buscar todos os registros.
|
||||
|
||||
Returns:
|
||||
Uma lista de dicionários contendo os dados dos registros.
|
||||
"""
|
||||
# Montagem do SQL
|
||||
sql = """ SELECT * FROM G_NATUREZA WHERE sistema_id = :sistema_id"""
|
||||
|
||||
# Montagem de parÂmetros
|
||||
params = {
|
||||
'sistema_id': g_natureza_sistema_id_schema.sistema_id
|
||||
}
|
||||
|
||||
# Execução do sql
|
||||
response = self.fetch_all(sql, params)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
|
@ -26,6 +26,11 @@ class GNaturezaSchema(BaseModel):
|
|||
class GNaturezaIdSchema(BaseModel):
|
||||
natureza_id: int
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema para localizar uma NATUREZA especifica pelo ID (GET)
|
||||
# ----------------------------------------------------
|
||||
class GNaturezaSistemaIdSchema(BaseModel):
|
||||
sistema_id: int
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema para localizar uma NATUREZA especifica pela descrição (GET)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,33 @@
|
|||
from fastapi import HTTPException, status
|
||||
from api.packages.v1.administrativo.actions.g_natureza.g_natureza_index_by_sistema_id_action import IndexActionBySistemaId
|
||||
from api.packages.v1.administrativo.schemas.g_natureza_schema import GNaturezaSistemaIdSchema
|
||||
|
||||
class IndexBySistemaIdService:
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||
de listagem de registros na tabela g_natureza.
|
||||
"""
|
||||
|
||||
def execute(self, g_natureza_sistema_id_schema: GNaturezaSistemaIdSchema):
|
||||
"""
|
||||
Executa a operação de busca de todos os registros no banco de dados.
|
||||
|
||||
Returns:
|
||||
A lista de registros encontrados.
|
||||
"""
|
||||
# Instanciamento da ação
|
||||
index_action = IndexActionBySistemaId()
|
||||
|
||||
# Executa a busca de todas as ações
|
||||
data = index_action.execute(g_natureza_sistema_id_schema)
|
||||
|
||||
# Verifica se foram localizados registros
|
||||
if not data:
|
||||
# Retorna uma exceção
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail='Não foi possível localizar os registros de Natureza'
|
||||
)
|
||||
|
||||
# Retorna as informações localizadas
|
||||
return data
|
||||
Loading…
Add table
Reference in a new issue