[MVPTN-106] feat(GET): Criado endpointo que retorna todos os itens de emolumentos de um emolumento a partir do emolumento_id e adicionado endpoint que retorna item de emolumento a partir do emolumento_id e faixa de valor informados
This commit is contained in:
parent
7d7aaf24b8
commit
348cc3169d
10 changed files with 492 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
|||
from abstracts.action import BaseAction
|
||||
# O Schema precisa ser adaptado para GEmolumentoItem, talvez recebendo um ID de Emolumento
|
||||
# ou um ID do próprio Item, dependendo da necessidade de listagem.
|
||||
# Vamos sugerir um Schema específico para a listagem (Index) que pode receber um Emolumento ID
|
||||
# para listar todos os seus itens, mantendo o padrão do arquivo original que usava um 'SistemaIdSchema'.
|
||||
# Para simplificar, vamos assumir um schema de filtro ou um schema base para Index.
|
||||
# Sugerimos a criação de:
|
||||
# from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemIndexSchema
|
||||
# (ou GEmolumentoItemEmolumentoIdSchema se for o padrão da aplicação)
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemEmolumentoIdSchema
|
||||
|
||||
# O repositório IndexRepository deve ser substituído pelo GEmolumentoItemIndexRepository.
|
||||
from packages.v1.administrativo.repositories.g_emolumento_item.g_emolumento_item_index_repository import IndexRepository
|
||||
|
||||
class IndexAction(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_EMOLUMENTO_ITEM,
|
||||
utilizando a DDL fornecida.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemEmolumentoIdSchema):
|
||||
"""
|
||||
Executa a operação de listagem de G_EMOLUMENTO_ITEM no banco de dados.
|
||||
|
||||
Args:
|
||||
emolumento_item_schema: Esquema com parâmetros de filtro/listagem
|
||||
(por exemplo, ID do Emolumento pai, se a listagem for
|
||||
filtrada por ele, ou parâmetros de paginação).
|
||||
|
||||
Returns:
|
||||
A lista de todos os registros de G_EMOLUMENTO_ITEM que satisfazem o filtro.
|
||||
"""
|
||||
# Instanciamento do repositório
|
||||
# O nome do repositório foi adaptado com o prefixo 'GEmolumentoItem'
|
||||
index_repository = IndexRepository()
|
||||
|
||||
# Execução do repositório
|
||||
# O nome do parâmetro foi adaptado para 'emolumento_item_schema'
|
||||
response = index_repository.execute(emolumento_item_schema)
|
||||
|
||||
# Retorno da informação
|
||||
return response
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
from abstracts.action import BaseAction
|
||||
# O Schema precisa ser adaptado para GEmolumentoItem, talvez recebendo um ID de Emolumento
|
||||
# ou um ID do próprio Item, dependendo da necessidade de listagem.
|
||||
# Vamos sugerir um Schema específico para a listagem (Index) que pode receber um Emolumento ID
|
||||
# para listar todos os seus itens, mantendo o padrão do arquivo original que usava um 'SistemaIdSchema'.
|
||||
# Para simplificar, vamos assumir um schema de filtro ou um schema base para Index.
|
||||
# Sugerimos a criação de:
|
||||
# from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemIndexSchema
|
||||
# (ou GEmolumentoItemEmolumentoIdSchema se for o padrão da aplicação)
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemValorSchema
|
||||
|
||||
# O repositório ValorRepository deve ser substituído pelo GEmolumentoItemValorRepository.
|
||||
from packages.v1.administrativo.repositories.g_emolumento_item.g_emolumento_item_valor_repository import ValorRepository
|
||||
|
||||
class ValorAction(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_EMOLUMENTO_ITEM,
|
||||
utilizando a DDL fornecida.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemValorSchema):
|
||||
"""
|
||||
Executa a operação de listagem de G_EMOLUMENTO_ITEM no banco de dados.
|
||||
|
||||
Args:
|
||||
emolumento_item_schema: Esquema com parâmetros de filtro/listagem
|
||||
(por exemplo, ID do Emolumento pai, se a listagem for
|
||||
filtrada por ele, ou parâmetros de paginação).
|
||||
|
||||
Returns:
|
||||
A lista de todos os registros de G_EMOLUMENTO_ITEM que satisfazem o filtro.
|
||||
"""
|
||||
# Instanciamento do repositório
|
||||
# O nome do repositório foi adaptado com o prefixo 'GEmolumentoItem'
|
||||
index_repository = ValorRepository()
|
||||
|
||||
# Execução do repositório
|
||||
# O nome do parâmetro foi adaptado para 'emolumento_item_schema'
|
||||
response = index_repository.execute(emolumento_item_schema)
|
||||
|
||||
# Retorno da informação
|
||||
return response
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||
# O Schema precisa ser adaptado para GEmolumentoItem.
|
||||
# Assumindo o padrão de nomenclatura anterior:
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import (
|
||||
GEmolumentoItemEmolumentoIdSchema,
|
||||
GEmolumentoItemValorSchema
|
||||
)
|
||||
|
||||
class GEmolumentoItemController:
|
||||
|
||||
def __init__(self):
|
||||
# Action responsável por carregar as services de acordo 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 (adaptado para g_emolumento_item)
|
||||
self.dynamic_import.set_table("g_emolumento_item")
|
||||
pass
|
||||
|
||||
# Lista todos os registros de item de emolumento por Emolumento ID
|
||||
def index(self, emolumento_item_schema: GEmolumentoItemEmolumentoIdSchema):
|
||||
|
||||
# Importação da classe desejada (adaptado o nome da service)
|
||||
indexService = self.dynamic_import.service("g_emolumento_item_index_service", "IndexService")
|
||||
|
||||
# Instância da classe service
|
||||
self.indexService = indexService()
|
||||
|
||||
# Lista todos os registros de item de emolumento
|
||||
# O nome do parâmetro foi adaptado para 'emolumento_item_schema'
|
||||
return {
|
||||
'message': 'Registros de item de emolumento localizados com sucesso',
|
||||
'data': self.indexService.execute(emolumento_item_schema)
|
||||
}
|
||||
|
||||
|
||||
# Lista todos os registros de item de emolumento por Emolumento ID e faixa de valor
|
||||
def get_by_valor(self, emolumento_item_schema: GEmolumentoItemValorSchema):
|
||||
|
||||
# Importação da classe desejada (adaptado o nome da service)
|
||||
valorService = self.dynamic_import.service("g_emolumento_item_get_by_valor_service", "ValorService")
|
||||
|
||||
# Instância da classe service
|
||||
self.valorService = valorService()
|
||||
|
||||
# Lista todos os registros de item de emolumento
|
||||
# O nome do parâmetro foi adaptado para 'emolumento_item_schema'
|
||||
return {
|
||||
'message': 'Registros de item de emolumento localizados com sucesso',
|
||||
'data': self.valorService.execute(emolumento_item_schema)
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
# Importação de bibliotecas
|
||||
from typing import Optional
|
||||
from fastapi import APIRouter, Body, Depends, status
|
||||
from actions.jwt.get_current_user import get_current_user
|
||||
|
||||
# Importações adaptadas para G_EMOLUMENTO_ITEM
|
||||
from packages.v1.administrativo.controllers.g_emolumento_item_controller import GEmolumentoItemController
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import (
|
||||
GEmolumentoItemEmolumentoIdSchema,
|
||||
GEmolumentoItemValorSchema
|
||||
)
|
||||
|
||||
# Inicializa o roteador para as rotas do item de emolumento
|
||||
# Poderia ser renomeado para 'router_item' ou similar se houver chance de conflito de namespace
|
||||
router = APIRouter()
|
||||
|
||||
# Instanciamento do controller desejado
|
||||
g_emolumento_item_controller = GEmolumentoItemController()
|
||||
|
||||
# Localiza registros de item de emolumento pelo emolumento_id e faixa de valores
|
||||
@router.get('/faixa/{emolumento_id}/{valor}',
|
||||
status_code=status.HTTP_200_OK,
|
||||
summary='Busca registros de item de emolumento em específico, possivelmente filtrando pelo ID do sistema/pai',
|
||||
response_description='Busca registros de item de emolumento em específico')
|
||||
async def get_by_valor(emolumento_id : int, valor : float, current_user: dict = Depends(get_current_user)):
|
||||
|
||||
# Cria o schema com os dados recebidos (adaptado para GEmolumentoItem)
|
||||
emolumento_item_schema = GEmolumentoItemValorSchema(emolumento_id=emolumento_id, valor=valor)
|
||||
|
||||
# Busca os registros de item de emolumento (adaptado para o novo controller)
|
||||
response = g_emolumento_item_controller.get_by_valor(emolumento_item_schema)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
||||
# Localiza registros de item de emolumento pelo emolumento_id
|
||||
@router.get('/{emolumento_id}',
|
||||
status_code=status.HTTP_200_OK,
|
||||
summary='Busca registros de item de emolumento em específico, possivelmente filtrando pelo ID do sistema/pai',
|
||||
response_description='Busca registros de item de emolumento em específico')
|
||||
async def index(emolumento_id : int, current_user: dict = Depends(get_current_user)):
|
||||
|
||||
# Cria o schema com os dados recebidos (adaptado para GEmolumentoItem)
|
||||
emolumento_item_schema = GEmolumentoItemEmolumentoIdSchema(emolumento_id=emolumento_id)
|
||||
|
||||
# Busca os registros de item de emolumento (adaptado para o novo controller)
|
||||
response = g_emolumento_item_controller.index(emolumento_item_schema)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
from abstracts.repository import BaseRepository
|
||||
# Adaptação do Schema para GEmolumentoItem. Assumindo o uso de um Schema de ID de Sistema
|
||||
# ou, mais tipicamente para itens, um Schema de ID do Emolumento pai (EMOLUMENTO_ID).
|
||||
# Para manter a similaridade do original, vamos usar um 'SistemaIdSchema' adaptado,
|
||||
# mas o SQL será ajustado para o campo EMOLUMENTO_ID.
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemEmolumentoIdSchema
|
||||
|
||||
class IndexRepository(BaseRepository):
|
||||
"""
|
||||
Repositório para a operação de listagem de todos os registros
|
||||
na tabela G_EMOLUMENTO_ITEM, possivelmente filtrados por EMOLUMENTO_ID.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemEmolumentoIdSchema):
|
||||
"""
|
||||
Executa a consulta SQL para buscar todos os registros de G_EMOLUMENTO_ITEM,
|
||||
incluindo todos os campos da DDL fornecida.
|
||||
|
||||
Returns:
|
||||
Uma lista de dicionários contendo os dados dos registros.
|
||||
"""
|
||||
# Montagem do SQL com TODOS os campos da DDL fornecida
|
||||
sql = """ SELECT VALOR_EMOLUMENTO,
|
||||
EMOLUMENTO_ITEM_ID,
|
||||
EMOLUMENTO_ID,
|
||||
VALOR_INICIO,
|
||||
VALOR_FIM,
|
||||
VALOR_TAXA_JUDICIARIA,
|
||||
EMOLUMENTO_PERIODO_ID,
|
||||
CODIGO,
|
||||
PAGINA_EXTRA,
|
||||
VALOR_PAGINA_EXTRA,
|
||||
VALOR_OUTRA_TAXA1,
|
||||
CODIGO_SELO,
|
||||
VALOR_FUNDO_RI,
|
||||
CODIGO_TABELA,
|
||||
SELO_GRUPO_ID,
|
||||
CODIGO_KM,
|
||||
EMOLUMENTO_ACRESCE,
|
||||
TAXA_ACRESCE,
|
||||
FUNCIVIL_ACRESCE,
|
||||
VALOR_FRACAO,
|
||||
VALOR_POR_EXCEDENTE_EMOL,
|
||||
VALOR_POR_EXCEDENTE_TJ,
|
||||
VALOR_POR_EXCEDENTE_FUNDO,
|
||||
VALOR_LIMITE_EXCEDENTE_EMOL,
|
||||
VALOR_LIMITE_EXCEDENTE_TJ,
|
||||
VALOR_LIMITE_EXCEDENTE_FUNDO,
|
||||
FUNDO_SELO,
|
||||
DISTRIBUICAO,
|
||||
VRCEXT
|
||||
FROM G_EMOLUMENTO_ITEM
|
||||
WHERE EMOLUMENTO_ID = :emolumento_id
|
||||
ORDER BY EMOLUMENTO_ITEM_ID """
|
||||
|
||||
# Preenchimento de parâmetros.
|
||||
# Adaptando o nome do parâmetro para refletir a coluna da DDL (EMOLUMENTO_ID).
|
||||
# Assumimos que o campo 'emolumento_id' do schema está sendo usado para passar este valor.
|
||||
params = {
|
||||
"emolumento_id": emolumento_item_schema.emolumento_id
|
||||
}
|
||||
|
||||
# Execução do sql
|
||||
response = self.fetch_all(sql, params)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
from abstracts.repository import BaseRepository
|
||||
# Adaptação do Schema para GEmolumentoItem. Assumindo o uso de um Schema de ID de Sistema
|
||||
# ou, mais tipicamente para itens, um Schema de ID do Emolumento pai (EMOLUMENTO_ID).
|
||||
# Para manter a similaridade do original, vamos usar um 'SistemaIdSchema' adaptado,
|
||||
# mas o SQL será ajustado para o campo EMOLUMENTO_ID.
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemValorSchema
|
||||
|
||||
class ValorRepository(BaseRepository):
|
||||
"""
|
||||
Repositório para a operação de listagem de todos os registros
|
||||
na tabela G_EMOLUMENTO_ITEM, possivelmente filtrados por EMOLUMENTO_ID.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemValorSchema):
|
||||
"""
|
||||
Executa a consulta SQL para buscar todos os registros de G_EMOLUMENTO_ITEM,
|
||||
incluindo todos os campos da DDL fornecida.
|
||||
|
||||
Returns:
|
||||
Uma lista de dicionários contendo os dados dos registros.
|
||||
"""
|
||||
# Montagem do SQL com TODOS os campos da DDL fornecida
|
||||
sql = """ SELECT VALOR_EMOLUMENTO,
|
||||
EMOLUMENTO_ITEM_ID,
|
||||
EMOLUMENTO_ID,
|
||||
VALOR_INICIO,
|
||||
VALOR_FIM,
|
||||
VALOR_TAXA_JUDICIARIA,
|
||||
EMOLUMENTO_PERIODO_ID,
|
||||
CODIGO,
|
||||
PAGINA_EXTRA,
|
||||
VALOR_PAGINA_EXTRA,
|
||||
VALOR_OUTRA_TAXA1,
|
||||
CODIGO_SELO,
|
||||
VALOR_FUNDO_RI,
|
||||
CODIGO_TABELA,
|
||||
SELO_GRUPO_ID,
|
||||
CODIGO_KM,
|
||||
EMOLUMENTO_ACRESCE,
|
||||
TAXA_ACRESCE,
|
||||
FUNCIVIL_ACRESCE,
|
||||
VALOR_FRACAO,
|
||||
VALOR_POR_EXCEDENTE_EMOL,
|
||||
VALOR_POR_EXCEDENTE_TJ,
|
||||
VALOR_POR_EXCEDENTE_FUNDO,
|
||||
VALOR_LIMITE_EXCEDENTE_EMOL,
|
||||
VALOR_LIMITE_EXCEDENTE_TJ,
|
||||
VALOR_LIMITE_EXCEDENTE_FUNDO,
|
||||
FUNDO_SELO,
|
||||
DISTRIBUICAO,
|
||||
VRCEXT
|
||||
FROM G_EMOLUMENTO_ITEM
|
||||
WHERE
|
||||
EMOLUMENTO_ID = :emolumento_id
|
||||
AND :valor BETWEEN VALOR_INICIO AND VALOR_FIM
|
||||
AND EMOLUMENTO_PERIODO_ID = (
|
||||
SELECT MAX(EI2.EMOLUMENTO_PERIODO_ID)
|
||||
FROM G_EMOLUMENTO_ITEM EI2
|
||||
WHERE EI2.EMOLUMENTO_ID = :emolumento_id
|
||||
)
|
||||
ORDER BY EMOLUMENTO_ITEM_ID; """
|
||||
|
||||
# Preenchimento de parâmetros.
|
||||
# Adaptando o nome do parâmetro para refletir a coluna da DDL (EMOLUMENTO_ID).
|
||||
# Assumimos que o campo 'emolumento_id' do schema está sendo usado para passar este valor.
|
||||
params = {
|
||||
"emolumento_id": emolumento_item_schema.emolumento_id,
|
||||
"valor": emolumento_item_schema.valor
|
||||
}
|
||||
|
||||
# Execução do sql
|
||||
response = self.fetch_all(sql, params)
|
||||
|
||||
# Retorna os dados localizados
|
||||
return response
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
from pydantic import BaseModel, field_validator, model_validator
|
||||
from fastapi import HTTPException, status
|
||||
from typing import Optional, ClassVar, Dict
|
||||
from decimal import Decimal
|
||||
|
||||
# Assumindo que a classe Text está disponível no caminho 'actions.validations.text'
|
||||
from actions.validations.text import Text
|
||||
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema base para G_EMOLUMENTO_ITEM
|
||||
# ----------------------------------------------------
|
||||
class GEmolumentoItemSchema(BaseModel):
|
||||
# Colunas NUMERIC(14,3) devem ser mapeadas para Decimal para precisão
|
||||
valor_emolumento: Optional[Decimal] = None
|
||||
|
||||
# Coluna NUMERIC(10,2) PK
|
||||
emolumento_item_id: Optional[int] = None
|
||||
|
||||
# Colunas NUMERIC(10,2) FK ou comuns
|
||||
emolumento_id: Optional[int] = None
|
||||
emolumento_periodo_id: Optional[int] = None
|
||||
codigo: Optional[int] = None
|
||||
pagina_extra: Optional[int] = None
|
||||
selo_grupo_id: Optional[int] = None
|
||||
vrc_ext: Optional[int] = None # VRCEXT NUMERIC(10,2)
|
||||
|
||||
# Colunas NUMERIC(14,3)
|
||||
valor_inicio: Optional[Decimal] = None
|
||||
valor_fim: Optional[Decimal] = None
|
||||
valor_taxa_judiciaria: Optional[Decimal] = None
|
||||
valor_pagina_extra: Optional[Decimal] = None
|
||||
valor_outra_taxa1: Optional[Decimal] = None
|
||||
valor_fundo_ri: Optional[Decimal] = None
|
||||
emolumento_acresce: Optional[Decimal] = None
|
||||
taxa_acresce: Optional[Decimal] = None
|
||||
funcivil_acresce: Optional[Decimal] = None
|
||||
valor_fracao: Optional[Decimal] = None
|
||||
valor_por_excedente_emol: Optional[Decimal] = None
|
||||
valor_por_excedente_tj: Optional[Decimal] = None
|
||||
valor_por_excedente_fundo: Optional[Decimal] = None
|
||||
valor_limite_excedente_emol: Optional[Decimal] = None
|
||||
valor_limite_excedente_tj: Optional[Decimal] = None
|
||||
valor_limite_excedente_fundo: Optional[Decimal] = None
|
||||
fundo_selo: Optional[Decimal] = None
|
||||
distribuicao: Optional[Decimal] = None
|
||||
|
||||
# Colunas VARCHAR
|
||||
codigo_selo: Optional[str] = None # VARCHAR(30)
|
||||
codigo_tabela: Optional[str] = None # VARCHAR(30)
|
||||
codigo_km: Optional[str] = None # VARCHAR(30)
|
||||
|
||||
|
||||
# Sanitiza campos de texto (apenas os VARCHARs da DDL)
|
||||
@field_validator(
|
||||
'codigo_selo', 'codigo_tabela', 'codigo_km'
|
||||
)
|
||||
def sanitize_fields(cls, v):
|
||||
if isinstance(v, str) and v:
|
||||
return Text.sanitize_input(v)
|
||||
return v
|
||||
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema para localizar um registro pelo emolumento_id (GET)
|
||||
# ----------------------------------------------------
|
||||
class GEmolumentoItemEmolumentoIdSchema(BaseModel):
|
||||
emolumento_id: int
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Schema para localizar um registro pelo emolumento_id e valor (GET)
|
||||
# ----------------------------------------------------
|
||||
class GEmolumentoItemValorSchema(BaseModel):
|
||||
emolumento_id: int
|
||||
valor: float
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
from fastapi import HTTPException, status
|
||||
# Adaptação do Schema
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemValorSchema
|
||||
# Importação da Action ajustada para o novo prefixo
|
||||
from packages.v1.administrativo.actions.g_emolumento_item.g_emolumento_item_valor_action import ValorAction
|
||||
|
||||
# O nome da classe deve ser adaptado com o prefixo 'GEmolumentoItem' para manter o padrão
|
||||
# de classes da aplicação no Controller, Repository, etc.
|
||||
class ValorService:
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||
de listagem de registros na tabela G_EMOLUMENTO_ITEM.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemValorSchema):
|
||||
"""
|
||||
Executa a operação de busca de todos os registros de G_EMOLUMENTO_ITEM no banco de dados.
|
||||
|
||||
Returns:
|
||||
A lista de registros encontrados.
|
||||
"""
|
||||
# Instanciamento da ação (com o prefixo adaptado)
|
||||
valor_action = ValorAction()
|
||||
|
||||
# Executa a busca de todas as ações (adaptando o nome do parâmetro)
|
||||
data = valor_action.execute(emolumento_item_schema)
|
||||
|
||||
# Verifica se foram localizados registros
|
||||
if not data:
|
||||
# Retorna uma exceção (adaptando a mensagem)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail='Não foi possível localizar os registros de G_EMOLUMENTO_ITEM'
|
||||
)
|
||||
|
||||
# Retorna as informações localizadas
|
||||
return data
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
from fastapi import HTTPException, status
|
||||
# Adaptação do Schema
|
||||
from packages.v1.administrativo.schemas.g_emolumento_item_schema import GEmolumentoItemEmolumentoIdSchema
|
||||
# Importação da Action ajustada para o novo prefixo
|
||||
from packages.v1.administrativo.actions.g_emolumento_item.g_emolumento_item_index_action import IndexAction
|
||||
|
||||
# O nome da classe deve ser adaptado com o prefixo 'GEmolumentoItem' para manter o padrão
|
||||
# de classes da aplicação no Controller, Repository, etc.
|
||||
class IndexService:
|
||||
"""
|
||||
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||
de listagem de registros na tabela G_EMOLUMENTO_ITEM.
|
||||
"""
|
||||
|
||||
# Mantendo o padrão de nome de método do arquivo original
|
||||
def execute(self, emolumento_item_schema: GEmolumentoItemEmolumentoIdSchema):
|
||||
"""
|
||||
Executa a operação de busca de todos os registros de G_EMOLUMENTO_ITEM no banco de dados.
|
||||
|
||||
Returns:
|
||||
A lista de registros encontrados.
|
||||
"""
|
||||
# Instanciamento da ação (com o prefixo adaptado)
|
||||
index_action = IndexAction()
|
||||
|
||||
# Executa a busca de todas as ações (adaptando o nome do parâmetro)
|
||||
data = index_action.execute(emolumento_item_schema)
|
||||
|
||||
# Verifica se foram localizados registros
|
||||
if not data:
|
||||
# Retorna uma exceção (adaptando a mensagem)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail='Não foi possível localizar os registros de G_EMOLUMENTO_ITEM'
|
||||
)
|
||||
|
||||
# Retorna as informações localizadas
|
||||
return data
|
||||
|
|
@ -25,6 +25,7 @@ from packages.v1.administrativo.endpoints import g_marcacao_tipo_endpoint
|
|||
from packages.v1.administrativo.endpoints import t_servico_etiqueta_endpoint
|
||||
from packages.v1.administrativo.endpoints import g_uf_endpoint
|
||||
from packages.v1.administrativo.endpoints import g_emolumento_endpoint
|
||||
from packages.v1.administrativo.endpoints import g_emolumento_item_endpoint
|
||||
|
||||
# Cria uma instância do APIRouter que vai agregar todas as rotas da API
|
||||
api_router = APIRouter()
|
||||
|
|
@ -146,4 +147,9 @@ api_router.include_router(
|
|||
# Inclui as rotas de g_emolumento
|
||||
api_router.include_router(
|
||||
g_emolumento_endpoint.router, prefix="/administrativo/g_emolumento", tags=["Emolumentos"]
|
||||
)
|
||||
|
||||
# Inclui as rotas de g_emolumento_item
|
||||
api_router.include_router(
|
||||
g_emolumento_item_endpoint.router, prefix="/administrativo/g_emolumento_item", tags=["Emolumento Item"]
|
||||
)
|
||||
Loading…
Add table
Reference in a new issue