[MVPTN-106] feat(c_caixa_servico): Adicionado endpint que retorna c_caixa_servico pelo sistema_id

This commit is contained in:
Kenio 2025-10-17 18:17:27 -03:00
parent 348cc3169d
commit a61ea6d33d
6 changed files with 95 additions and 3 deletions

View file

@ -0,0 +1,16 @@
from abstracts.action import BaseAction
from packages.v1.administrativo.schemas.c_caixa_servico_schema import CCaixaServicoSistemaIdSchema
from packages.v1.administrativo.repositories.c_caixa_servico.c_caixa_servico_get_by_sistema_id_repository import ShowSistemaIdRepository
class ShowSistemaIdAction(BaseAction):
def execute(self, caixa_servico_schema : CCaixaServicoSistemaIdSchema):
# Instânciamento do repositório sql
show_sistema_id_repository = ShowSistemaIdRepository()
# Execução do sql
response = show_sistema_id_repository.execute(caixa_servico_schema)
# Retorno da informação
return response

View file

@ -4,7 +4,8 @@ from packages.v1.administrativo.schemas.c_caixa_servico_schema import (
CCaixaServicoSaveSchema,
CCaixaServicoUpdateSchema,
CCaixaServicoIdSchema,
CCaixaServicoDescricaoSchema
CCaixaServicoDescricaoSchema,
CCaixaServicoSistemaIdSchema
)
class CCaixaServicoController:
@ -65,7 +66,23 @@ class CCaixaServicoController:
return {
'message' : 'Caixa Serviço localizado com sucesso',
'data': self.show_service.execute(caixa_servico_schema, True)# True para retornar a mensagem de erro caso não localize o serviço
}
}
# Busca um caixa serviço pelp sistema_id
def getSistemaId(self, caixa_servico_schema : CCaixaServicoSistemaIdSchema):
#Importação da classe desejada
show_sistema_id_service = self.dynamic_import.service('c_caixa_servico_get_sistema_id_service', 'GetSistemaIdService')
# Instânciamento da classe desejada
self.show_sistema_id_service = show_sistema_id_service()
# Busca e retorna o usuário desejado
return {
'message' : 'Caixa Serviços localizados com sucesso',
'data': self.show_sistema_id_service.execute(caixa_servico_schema)
}
# Cadastra um novo usuário

View file

@ -7,7 +7,8 @@ from packages.v1.administrativo.schemas.c_caixa_servico_schema import (
CCaixaServicoSchema,
CCaixaServicoSaveSchema,
CCaixaServicoUpdateSchema,
CCaixaServicoDescricaoSchema
CCaixaServicoDescricaoSchema,
CCaixaServicoSistemaIdSchema
)
# Inicializa o roteador para as rotas de usuário
@ -47,6 +48,23 @@ async def getDescricao(descricao : str, current_user: dict = Depends(get_current
return response
# Localiza um caixa serviço pelo sistema_id
@router.get('/sistema/{sistema_id}',
status_code=status.HTTP_200_OK,
summary='Busca registros pelo sistema_id',
response_description='Busca registros pelo sistema_id')
async def getSistemaId(sistema_id : int, current_user: dict = Depends(get_current_user)):
# Cria o schema com os dados recebidos
caixa_servico_schema = CCaixaServicoSistemaIdSchema(sistema_id=sistema_id)
# Busca um usuário especifico pelo e-mail
response = c_caixa_servico_controller.getSistemaId(caixa_servico_schema)
# Retorna os dados localizados
return response
# Localiza um serviço pelo ID
@router.get('/{caixa_servico_id}',
status_code=status.HTTP_200_OK,

View file

@ -0,0 +1,17 @@
from abstracts.repository import BaseRepository
from packages.v1.administrativo.schemas.c_caixa_servico_schema import CCaixaServicoSistemaIdSchema
class ShowSistemaIdRepository(BaseRepository):
def execute(self, caixa_servico_schema : CCaixaServicoSistemaIdSchema):
# Montagem do sql
sql = """ SELECT * FROM C_CAIXA_SERVICO ccs WHERE ccs.sistema_id = :sistema_id ORDER BY ccs.descricao ASC"""
# Preenchimento de parâmetros
params = {
'sistema_id' : caixa_servico_schema.sistema_id
}
# Execução do sql
return self.fetch_all(sql, params)

View file

@ -209,6 +209,13 @@ class CCaixaServicoIdSchema(BaseModel):
caixa_servico_id: int
# ----------------------------------------------------
# Schema para localizar um caixa serviço especifico pelo ID (GET)
# ----------------------------------------------------
class CCaixaServicoSistemaIdSchema(BaseModel):
sistema_id: int
# ----------------------------------------------------
# Schema para localizar um caixa serviço pela descrição (GET)
# ----------------------------------------------------

View file

@ -0,0 +1,17 @@
from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.c_caixa_servico_schema import CCaixaServicoSistemaIdSchema
from packages.v1.administrativo.actions.c_caixa_servico.c_caixa_servico_get_by_sistema_id_action import ShowSistemaIdAction
class GetSistemaIdService:
def execute(self, caixa_servico_schema: CCaixaServicoSistemaIdSchema):
# Instânciamento de ação
show_sistema_id_action = ShowSistemaIdAction()
# Executa a ação em questão
data = show_sistema_id_action.execute(caixa_servico_schema)
# Retorno da informação
return data