monitoring-api/packages/v1/administrativo/services/client/client_index_service.py

36 lines
No EOL
1.3 KiB
Python

from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.client_schema import ClientSchema
from packages.v1.administrativo.actions.client.client_index_action import IndexAction
class IndexService:
"""
Service responsável por orquestrar a listagem (indexação) de todos
os clientes, delegando a busca para a Action correspondente.
"""
# O método execute pode ser adaptado para receber 'first' e 'skip' se a Action/Repository suportar paginação.
# No entanto, mantendo o padrão da assinatura do arquivo de referência, ele não recebe parâmetros aqui.
def execute(self):
"""
Executa o serviço de listagem de clientes.
:return: Lista de registros de clientes.
"""
# Instânciamento de ação
index_action = IndexAction()
# Executa a busca de todos os clientes (a Action/Repository fará a busca, potencialmente com paginação)
data = index_action.execute()
# 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 clientes'
)
# Retorna as informações localizadas
return data