[MVPTN-31] feat(CRUD): Cria o CRUD de cadastor de Cartório
This commit is contained in:
parent
d3a76b8106
commit
890493639f
19 changed files with 906 additions and 1 deletions
|
|
@ -0,0 +1,33 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from api.packages.v1.administrativo.repositories.g_cartorio.g_cartorio_delete_repository import GCartorioDeleteRepository
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioDeleteAction(BaseAction):
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de exclusão de um registro na tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de exclusão no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema):
|
||||||
|
O esquema contendo o ID do registro a ser excluído.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de exclusão.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_delete_repository = GCartorioDeleteRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução da exclusão
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = g_cartorio_delete_repository.execute(g_cartorio_id_schema)
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from api.packages.v1.administrativo.repositories.g_cartorio.g_cartorio_index_repository import GCartorioIndexRepository
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioIndexAction(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_TITULO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
"""
|
||||||
|
Executa a operação de listagem no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_index_schema (GCartorioIndexSchema):
|
||||||
|
Esquema contendo parâmetros opcionais de filtro.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A lista de registros encontrados.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_index_repository = GCartorioIndexRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = g_cartorio_index_repository.execute()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# --------------------------------
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from api.packages.v1.administrativo.repositories.g_cartorio.g_cartorio_save_repository import GCartorioSaveRepository
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioSaveSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioSaveAction(BaseAction):
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de salvamento de um novo registro na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_save_schema: GCartorioSaveSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de salvamento.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_schema (GCartorioSchema):
|
||||||
|
O esquema com os dados a serem persistidos.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de salvamento.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_save_repository = GCartorioSaveRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = g_cartorio_save_repository.execute(g_cartorio_save_schema)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from api.packages.v1.administrativo.repositories.g_cartorio.g_cartorio_show_repository import GCartorioShowRepository
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioShowAction(BaseAction):
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a exibição
|
||||||
|
de um registro na tabela G_NATUREZA_TITULO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de exibição.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema):
|
||||||
|
O esquema com o ID do registro a ser exibido.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de exibição.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_show_repository = GCartorioShowRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = g_cartorio_show_repository.execute(g_cartorio_id_schema)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
from abstracts.action import BaseAction
|
||||||
|
from api.packages.v1.administrativo.repositories.g_cartorio.g_cartorio_update_repository import GCartorioUpdateRepository
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioUpdateSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioUpdateAction(BaseAction):
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a atualização
|
||||||
|
de um registro na tabela G_NATUREZA_TITULO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_update_schema: GCartorioUpdateSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de atualização.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_update_schema (GCartorioUpdateSchema):
|
||||||
|
O esquema com os dados a serem atualizados.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de atualização.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento do repositório de atualização
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_update_repository = GCartorioUpdateRepository()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do repositório
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = g_cartorio_update_repository.execute(g_cartorio_update_schema)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno do resultado
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return response
|
||||||
101
packages/v1/administrativo/controllers/g_cartorio_controller.py
Normal file
101
packages/v1/administrativo/controllers/g_cartorio_controller.py
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
from actions.dynamic_import.dynamic_import import DynamicImport
|
||||||
|
from packages.v1.administrativo.schemas.g_cartorio_schema import (
|
||||||
|
GCartorioSaveSchema,
|
||||||
|
GCartorioUpdateSchema,
|
||||||
|
GCartorioIdSchema
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioController:
|
||||||
|
"""
|
||||||
|
Controller responsável por orquestrar as operações CRUD da tabela G_CARTORIO,
|
||||||
|
utilizando carregamento dinâmico de serviços via DynamicImport.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Inicialização do DynamicImport
|
||||||
|
# ----------------------------------------------------
|
||||||
|
self.dynamic_import = DynamicImport()
|
||||||
|
self.dynamic_import.set_package("administrativo")
|
||||||
|
self.dynamic_import.set_table("g_cartorio")
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Lista todos os registros de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def index(self):
|
||||||
|
# Importação da classe desejada
|
||||||
|
index_service = self.dynamic_import.service("g_cartorio_index_service", "GCartorioIndexService")
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.index_service = index_service()
|
||||||
|
|
||||||
|
# Execução da listagem
|
||||||
|
return {
|
||||||
|
"message": "Registros de G_CARTORIO localizados com sucesso.",
|
||||||
|
"data": self.index_service.execute(),
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Busca um registro específico de G_CARTORIO pelo ID
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def show(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
# Importação da classe desejada
|
||||||
|
show_service = self.dynamic_import.service("g_cartorio_show_service", "GCartorioShowService")
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.show_service = show_service()
|
||||||
|
|
||||||
|
# Execução da busca
|
||||||
|
return {
|
||||||
|
"message": "Registro de G_CARTORIO localizado com sucesso.",
|
||||||
|
"data": self.show_service.execute(g_cartorio_id_schema),
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Cadastra um novo registro em G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def save(self, g_cartorio_save_schema: GCartorioSaveSchema):
|
||||||
|
# Importação da classe desejada
|
||||||
|
save_service = self.dynamic_import.service("g_cartorio_save_service", "GCartorioSaveService")
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.save_service = save_service()
|
||||||
|
|
||||||
|
# Execução do salvamento
|
||||||
|
return {
|
||||||
|
"message": "Registro de G_CARTORIO salvo com sucesso.",
|
||||||
|
"data": self.save_service.execute(g_cartorio_save_schema),
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Atualiza um registro existente de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def update(self, g_cartorio_update_schema: GCartorioUpdateSchema):
|
||||||
|
# Importação da classe desejada
|
||||||
|
update_service = self.dynamic_import.service("g_cartorio_update_service", "GCartorioUpdateService")
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.update_service = update_service()
|
||||||
|
|
||||||
|
# Execução da atualização
|
||||||
|
return {
|
||||||
|
"message": "Registro de G_CARTORIO atualizado com sucesso.",
|
||||||
|
"data": self.update_service.execute(g_cartorio_update_schema),
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Exclui um registro de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
def delete(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
# Importação da classe desejada
|
||||||
|
delete_service = self.dynamic_import.service("g_cartorio_delete_service", "GCartorioDeleteService")
|
||||||
|
|
||||||
|
# Instância da classe service
|
||||||
|
self.delete_service = delete_service()
|
||||||
|
|
||||||
|
# Execução da exclusão
|
||||||
|
return {
|
||||||
|
"message": "Registro de G_CARTORIO removido com sucesso.",
|
||||||
|
"data": self.delete_service.execute(g_cartorio_id_schema),
|
||||||
|
}
|
||||||
94
packages/v1/administrativo/endpoints/g_cartorio_endpoint.py
Normal file
94
packages/v1/administrativo/endpoints/g_cartorio_endpoint.py
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
# Importação de bibliotecas
|
||||||
|
from fastapi import APIRouter, Depends, status
|
||||||
|
from actions.jwt.get_current_user import get_current_user
|
||||||
|
from packages.v1.administrativo.controllers.g_cartorio_controller import GCartorioController
|
||||||
|
from packages.v1.administrativo.schemas.g_cartorio_schema import (
|
||||||
|
GCartorioSaveSchema,
|
||||||
|
GCartorioUpdateSchema,
|
||||||
|
GCartorioIdSchema
|
||||||
|
)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Inicializa o roteador para as rotas da tabela G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
# Instanciamento do controller
|
||||||
|
g_cartorio_controller = GCartorioController()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Lista todos os registros de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.get('/',
|
||||||
|
status_code=status.HTTP_200_OK,
|
||||||
|
summary='Lista todos os registros de G_CARTORIO cadastrados',
|
||||||
|
response_description='Lista todos os registros de G_CARTORIO cadastrados')
|
||||||
|
async def index(current_user: dict = Depends(get_current_user)):
|
||||||
|
"""
|
||||||
|
Retorna todos os registros da tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
response = g_cartorio_controller.index()
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Busca um registro específico de G_CARTORIO pelo ID
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.get('/{cartorio_id}',
|
||||||
|
status_code=status.HTTP_200_OK,
|
||||||
|
summary='Busca um registro de G_CARTORIO pelo ID',
|
||||||
|
response_description='Busca um registro de G_CARTORIO em específico')
|
||||||
|
async def show(cartorio_id: int, current_user: dict = Depends(get_current_user)):
|
||||||
|
"""
|
||||||
|
Retorna um registro específico de G_CARTORIO com base no ID informado.
|
||||||
|
"""
|
||||||
|
g_cartorio_id_schema = GCartorioIdSchema(cartorio_id=cartorio_id)
|
||||||
|
response = g_cartorio_controller.show(g_cartorio_id_schema)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Cadastra um novo registro em G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.post('/',
|
||||||
|
status_code=status.HTTP_201_CREATED,
|
||||||
|
summary='Cadastra um novo registro em G_CARTORIO',
|
||||||
|
response_description='Cadastra um novo registro em G_CARTORIO')
|
||||||
|
async def save(g_cartorio_schema: GCartorioSaveSchema, current_user: dict = Depends(get_current_user)):
|
||||||
|
"""
|
||||||
|
Cria um novo registro na tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
response = g_cartorio_controller.save(g_cartorio_schema)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Atualiza um registro existente de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.put('/{cartorio_id}',
|
||||||
|
status_code=status.HTTP_200_OK,
|
||||||
|
summary='Atualiza um registro existente em G_CARTORIO',
|
||||||
|
response_description='Atualiza um registro existente em G_CARTORIO')
|
||||||
|
async def update(cartorio_id: int, g_cartorio_update_schema: GCartorioUpdateSchema, current_user: dict = Depends(get_current_user)):
|
||||||
|
"""
|
||||||
|
Atualiza um registro existente de G_CARTORIO com base no ID informado.
|
||||||
|
"""
|
||||||
|
g_cartorio_update_schema.cartorio_id = cartorio_id
|
||||||
|
response = g_cartorio_controller.update(g_cartorio_update_schema)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Exclui um registro de G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
@router.delete('/{cartorio_id}',
|
||||||
|
status_code=status.HTTP_200_OK,
|
||||||
|
summary='Remove um registro de G_CARTORIO',
|
||||||
|
response_description='Remove um registro de G_CARTORIO')
|
||||||
|
async def delete(cartorio_id: int, current_user: dict = Depends(get_current_user)):
|
||||||
|
"""
|
||||||
|
Remove um registro específico de G_CARTORIO com base no ID informado.
|
||||||
|
"""
|
||||||
|
g_cartorio_id_schema = GCartorioIdSchema(cartorio_id=cartorio_id)
|
||||||
|
response = g_cartorio_controller.delete(g_cartorio_id_schema)
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
|
||||||
|
class GCartorioDeleteRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório responsável pela exclusão de registros na tabela
|
||||||
|
G_CARTORIO.
|
||||||
|
"""
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Executa a exclusão de um registro específico da tabela G_CARTORIO
|
||||||
|
com base no ID informado.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema): Esquema contendo o ID do registro a ser excluído.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de exclusão.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# Montagem do SQL
|
||||||
|
sql = """
|
||||||
|
DELETE FROM G_CARTORIO GG
|
||||||
|
WHERE GG.CARTORIO_ID = :cartorio_id
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Preenchimento dos parâmetros
|
||||||
|
params = {
|
||||||
|
"cartorio_id": g_cartorio_id_schema.cartorio_id
|
||||||
|
}
|
||||||
|
|
||||||
|
# Execução da instrução SQL
|
||||||
|
response = self.run(sql, params)
|
||||||
|
|
||||||
|
# Retorna o resultado da exclusão
|
||||||
|
return response
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# Lança exceção HTTP em caso de erro
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||||
|
detail=f"Erro ao excluir registro de G_CARTORIO: {e}"
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
|
||||||
|
class GCartorioIndexRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório para a operação de listagem de todos os registros
|
||||||
|
na tabela t_censec_qualidade.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
"""
|
||||||
|
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
|
||||||
|
GG.*
|
||||||
|
FROM G_CARTORIO GG
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Execução do sql
|
||||||
|
response = self.fetch_all(sql)
|
||||||
|
|
||||||
|
# Retorna os dados localizados
|
||||||
|
return response
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
from api.actions.data.generate_insert_sql import generate_insert_sql
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioSaveSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioSaveRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório responsável pela operação de salvamento de um novo registro
|
||||||
|
na tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_save_schema: GCartorioSaveSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de salvamento no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_save_schema (GCartorioSchema): O esquema com os dados a serem salvos.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O registro recém-criado.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
HTTPException: Caso ocorra um erro na execução da query.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Preenchimento dos parâmetros
|
||||||
|
# ----------------------------------------------------
|
||||||
|
params = g_cartorio_save_schema.model_dump(exclude_unset=True)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Montagem do SQL dinâmico
|
||||||
|
# ----------------------------------------------------
|
||||||
|
sql = generate_insert_sql('G_CARTORIO', params)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do SQL e retorno do registro
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return self.run_and_return(sql, params)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Tratamento de erros e lançamento de exceção HTTP
|
||||||
|
# ----------------------------------------------------
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||||
|
detail=f"Erro ao salvar registro em G_CARTORIO: {e}"
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioShowRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório responsável pela operação de exibição de um registro
|
||||||
|
na tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Busca um registro específico de G_CARTORIO pelo ID.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema):
|
||||||
|
Esquema contendo o ID do registro a ser buscado.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O registro encontrado ou levanta exceção HTTP 404 se não existir.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
HTTPException: Caso ocorra um erro na execução da query.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Montagem do SQL
|
||||||
|
# ----------------------------------------------------
|
||||||
|
sql = """
|
||||||
|
SELECT *
|
||||||
|
FROM G_CARTORIO GG
|
||||||
|
WHERE GG.CARTORIO_ID = :cartorio_id
|
||||||
|
"""
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Preenchimento de parâmetros
|
||||||
|
# ----------------------------------------------------
|
||||||
|
params = g_cartorio_id_schema.model_dump(exclude_unset=True)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução do SQL
|
||||||
|
# ----------------------------------------------------
|
||||||
|
result = self.fetch_one(sql, params)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Validação de retorno
|
||||||
|
# ----------------------------------------------------
|
||||||
|
if not result:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="Registro de G_CARTORIO não encontrado."
|
||||||
|
)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
except HTTPException:
|
||||||
|
# Repassa exceções HTTP explícitas (como 404)
|
||||||
|
raise
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# Captura falhas inesperadas de execução
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||||
|
detail=f"Erro ao buscar registro em G_CARTORIO: {e}"
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
from abstracts.repository import BaseRepository
|
||||||
|
from api.actions.data.prepare_update_data import prepare_update_data
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioUpdateSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioUpdateRepository(BaseRepository):
|
||||||
|
"""
|
||||||
|
Repositório responsável pela operação de atualização de registros
|
||||||
|
na tabela G_CARTORIO.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_update_schema: GCartorioUpdateSchema):
|
||||||
|
"""
|
||||||
|
Atualiza um registro existente na tabela G_CARTORIO.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_update_schema (GCartorioUpdateSchema):
|
||||||
|
Esquema contendo os dados a serem atualizados.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O registro atualizado (via RETURNING *).
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
HTTPException: Caso ocorra um erro na execução do SQL.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Prepara parâmetros e colunas de atualização dinâmicas
|
||||||
|
# ----------------------------------------------------
|
||||||
|
params, update_columns = prepare_update_data(
|
||||||
|
g_cartorio_update_schema,
|
||||||
|
exclude_fields=["cartorio_id"],
|
||||||
|
id_field="cartorio_id"
|
||||||
|
)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Montagem do SQL dinâmico
|
||||||
|
# ----------------------------------------------------
|
||||||
|
sql = f"""
|
||||||
|
UPDATE G_CARTORIO
|
||||||
|
SET {update_columns}
|
||||||
|
WHERE CARTORIO_ID = :cartorio_id
|
||||||
|
RETURNING *;
|
||||||
|
"""
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução e retorno do registro atualizado
|
||||||
|
# ----------------------------------------------------
|
||||||
|
response = self.run_and_return(sql, params)
|
||||||
|
return response
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Tratamento de exceção e retorno HTTP padronizado
|
||||||
|
# ----------------------------------------------------
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||||
|
detail=f"Erro ao atualizar registro em G_CARTORIO: {str(e)}"
|
||||||
|
)
|
||||||
82
packages/v1/administrativo/schemas/g_cartorio_schema.py
Normal file
82
packages/v1/administrativo/schemas/g_cartorio_schema.py
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from typing import Optional
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Schema base - representa a tabela G_CARTORIO
|
||||||
|
# ----------------------------------------------------
|
||||||
|
class GCartorioSchema(BaseModel):
|
||||||
|
cartorio_id: Optional[float] = None
|
||||||
|
seq: Optional[str] = None
|
||||||
|
cns: Optional[str] = None
|
||||||
|
cnpj: Optional[str] = None
|
||||||
|
denominacao_serventia: Optional[str] = None
|
||||||
|
status_serventia: Optional[float] = None
|
||||||
|
atribuicao: Optional[str] = None
|
||||||
|
dt_instalacao: Optional[datetime] = None
|
||||||
|
dat_inclusao: Optional[datetime] = None
|
||||||
|
dat_alteracao: Optional[datetime] = None
|
||||||
|
uf: Optional[str] = None
|
||||||
|
municipio: Optional[str] = None
|
||||||
|
cod_ibge: Optional[float] = None
|
||||||
|
bairro: Optional[str] = None
|
||||||
|
distrito: Optional[str] = None
|
||||||
|
sub_distrito: Optional[str] = None
|
||||||
|
endereco: Optional[str] = None
|
||||||
|
complemento: Optional[str] = None
|
||||||
|
cep: Optional[str] = None
|
||||||
|
telefone1: Optional[str] = None
|
||||||
|
fax: Optional[str] = None
|
||||||
|
email: Optional[str] = None
|
||||||
|
home_page: Optional[str] = None
|
||||||
|
dt_inativacao: Optional[datetime] = None
|
||||||
|
nome_titular: Optional[str] = None
|
||||||
|
cpf_titular: Optional[str] = None
|
||||||
|
dt_ingresso_titular: Optional[str] = None
|
||||||
|
dt_nomeacao_titular: Optional[datetime] = None
|
||||||
|
tipo_titular: Optional[float] = None
|
||||||
|
forma_ingresso_titular: Optional[float] = None
|
||||||
|
dt_assuncao_serventia_titular: Optional[datetime] = None
|
||||||
|
dt_colacao_grau_titular: Optional[datetime] = None
|
||||||
|
bacharelado_titular: Optional[float] = None
|
||||||
|
nome_substituto: Optional[str] = None
|
||||||
|
cpf_substituto: Optional[str] = None
|
||||||
|
email_substituto: Optional[str] = None
|
||||||
|
dat_inclusao_substituto: Optional[datetime] = None
|
||||||
|
dat_alteracao_substituto: Optional[datetime] = None
|
||||||
|
emitente: Optional[str] = None
|
||||||
|
cpf_escrevente: Optional[str] = None
|
||||||
|
nome_escrevente: Optional[str] = None
|
||||||
|
cargo_tituloar: Optional[str] = None
|
||||||
|
endereco_numero: Optional[str] = None
|
||||||
|
ddd: Optional[str] = None
|
||||||
|
insc_estadual: Optional[str] = None
|
||||||
|
insc_municipal: Optional[str] = None
|
||||||
|
razao_social: Optional[str] = None
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
from_attributes = True
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Schema para localizar um registro pelo ID (GET /{id})
|
||||||
|
# ----------------------------------------------------
|
||||||
|
class GCartorioIdSchema(BaseModel):
|
||||||
|
cartorio_id: float
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
from_attributes = True
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Schema para criação (POST)
|
||||||
|
# ----------------------------------------------------
|
||||||
|
class GCartorioSaveSchema(GCartorioSchema):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Schema para atualização (PUT)
|
||||||
|
# ----------------------------------------------------
|
||||||
|
class GCartorioUpdateSchema(GCartorioSchema):
|
||||||
|
pass
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
from api.packages.v1.administrativo.actions.g_cartorio.g_cartorio_delete_action import GCartorioDeleteAction
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioDeleteService:
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de exclusão de um registro na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de exclusão do registro no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema):
|
||||||
|
O esquema com o ID do registro a ser excluído.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de exclusão.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_delete_action = GCartorioDeleteAction()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
data = g_cartorio_delete_action.execute(g_cartorio_id_schema)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return data
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
from api.packages.v1.administrativo.actions.g_cartorio.g_cartorio_index_action import GCartorioIndexAction
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioIndexService:
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de listagem de registros na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self):
|
||||||
|
"""
|
||||||
|
Executa a operação de busca de todos os registros no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_index_schema (GCartorioIndexSchema):
|
||||||
|
Esquema que pode conter filtros ou parâmetros de busca.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A lista de registros encontrados.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_index_action = GCartorioIndexAction()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
data = g_cartorio_index_action.execute()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Verificação de retorno
|
||||||
|
# ----------------------------------------------------
|
||||||
|
if not data:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="Não foi possível localizar registros de G_GRAMATICA."
|
||||||
|
)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return data
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
from api.packages.v1.administrativo.actions.g_cartorio.g_cartorio_save_action import GCartorioSaveAction
|
||||||
|
from api.packages.v1.sequencia.schemas.g_sequencia import GSequenciaSchema
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioSaveSchema
|
||||||
|
from api.packages.v1.sequencia.services.g_sequencia.generate_service import GenerateService
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioSaveService:
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de criação de registros na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_save_schema: GCartorioSaveSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de salvamento do registro no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_save_schema (GCartorioSaveSchema):
|
||||||
|
O esquema com os dados a serem salvos.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O registro recém-criado.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Geração automática de ID (sequência)
|
||||||
|
# ----------------------------------------------------
|
||||||
|
if not g_cartorio_save_schema.cartorio_id:
|
||||||
|
# Cria o schema de sequência
|
||||||
|
sequencia_schema = GSequenciaSchema()
|
||||||
|
sequencia_schema.tabela = "G_CARTORIO"
|
||||||
|
|
||||||
|
# Gera a sequência atualizada
|
||||||
|
generate = GenerateService()
|
||||||
|
sequencia = generate.execute(sequencia_schema)
|
||||||
|
|
||||||
|
# Atualiza o ID no schema
|
||||||
|
g_cartorio_save_schema.cartorio_id = sequencia.sequencia
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento e execução da Action de salvamento
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_save_action = GCartorioSaveAction()
|
||||||
|
return g_cartorio_save_action.execute(g_cartorio_save_schema)
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
from api.packages.v1.administrativo.actions.g_cartorio.g_cartorio_show_action import GCartorioShowAction
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioIdSchema
|
||||||
|
from fastapi import HTTPException, status
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioShowService:
|
||||||
|
"""
|
||||||
|
Serviço responsável por encapsular a lógica de negócio para a operação
|
||||||
|
de busca de um registro na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_id_schema: GCartorioIdSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de busca no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_id_schema (GCartorioIdSchema):
|
||||||
|
O esquema com o ID do registro a ser buscado.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da busca.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_show_action = GCartorioShowAction()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
data = g_cartorio_show_action.execute(g_cartorio_id_schema)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Verificação de resultado
|
||||||
|
# ----------------------------------------------------
|
||||||
|
if not data:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="Não foi possível localizar o registro de G_GRAMATICA."
|
||||||
|
)
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Retorno da informação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return data
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
from api.packages.v1.administrativo.actions.g_cartorio.g_cartorio_update_action import GCartorioUpdateAction
|
||||||
|
from api.packages.v1.administrativo.schemas.g_cartorio_schema import GCartorioUpdateSchema
|
||||||
|
|
||||||
|
|
||||||
|
class GCartorioUpdateService:
|
||||||
|
"""
|
||||||
|
Serviço responsável pela operação de atualização de um registro
|
||||||
|
na tabela G_GRAMATICA.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def execute(self, g_cartorio_update_schema: GCartorioUpdateSchema):
|
||||||
|
"""
|
||||||
|
Executa a operação de atualização no banco de dados.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
g_cartorio_update_schema (GCartorioUpdateSchema):
|
||||||
|
O esquema com os dados a serem atualizados.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
O resultado da operação de atualização.
|
||||||
|
"""
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Instanciamento da ação
|
||||||
|
# ----------------------------------------------------
|
||||||
|
g_cartorio_update_action = GCartorioUpdateAction()
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Execução da ação e retorno do resultado
|
||||||
|
# ----------------------------------------------------
|
||||||
|
return g_cartorio_update_action.execute(g_cartorio_update_schema)
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
|
||||||
# Importa os módulos de rotas específicos
|
# Importa os módulos de rotas específicos
|
||||||
from api.packages.v1.administrativo.endpoints import g_gramatica_endpoint, g_natureza_titulo_endpoint, t_ato_partetipo_endpoint, t_censec_tiponatureza_endpoint
|
from api.packages.v1.administrativo.endpoints import g_cartorio_endpoint, g_gramatica_endpoint, g_natureza_titulo_endpoint, t_ato_partetipo_endpoint, t_censec_tiponatureza_endpoint
|
||||||
from packages.v1.administrativo.endpoints import t_censec_tipoato_endpoint
|
from packages.v1.administrativo.endpoints import t_censec_tipoato_endpoint
|
||||||
from packages.v1.administrativo.endpoints import t_censec_qualidadeato_endpoint
|
from packages.v1.administrativo.endpoints import t_censec_qualidadeato_endpoint
|
||||||
from packages.v1.administrativo.endpoints import g_tb_txmodelogrupo_endpoint
|
from packages.v1.administrativo.endpoints import g_tb_txmodelogrupo_endpoint
|
||||||
|
|
@ -209,4 +209,9 @@ api_router.include_router(
|
||||||
# Inclui as rotas de g_gramatica
|
# Inclui as rotas de g_gramatica
|
||||||
api_router.include_router(
|
api_router.include_router(
|
||||||
g_gramatica_endpoint.router, prefix="/administrativo/g_gramatica", tags=["Dicionário Gramatical"]
|
g_gramatica_endpoint.router, prefix="/administrativo/g_gramatica", tags=["Dicionário Gramatical"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Inclui as rotas de g_cartorio
|
||||||
|
api_router.include_router(
|
||||||
|
g_cartorio_endpoint.router, prefix="/administrativo/g_cartorio", tags=["Dados do Cartório"]
|
||||||
)
|
)
|
||||||
Loading…
Add table
Reference in a new issue