36 lines
No EOL
1.3 KiB
Python
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 ClientIndexAction
|
|
|
|
|
|
class ClientIndexService:
|
|
"""
|
|
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 = ClientIndexAction()
|
|
|
|
# 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 |