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

34 lines
No EOL
1.1 KiB
Python

from fastapi import HTTPException, status
from packages.v1.administrativo.schemas.client_schema import ClientSchema
from packages.v1.administrativo.actions.client.client_show_action import ClientShowAction
class ClientShowService:
"""
Service responsável por orquestrar a visualização de um cliente específico
(geralmente pelo client_id), delegando a execução para a Action.
"""
def execute(self, client_schema: ClientSchema):
"""
Executa o serviço de visualização de um cliente.
:param client_schema: Schema contendo o client_id.
:return: O registro do cliente encontrado.
"""
# Instânciamento de ação
show_action = ClientShowAction()
# Executa a ação em questão
data = show_action.execute(client_schema)
if not data:
# Retorna uma exceção se o registro não for encontrado
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail='Não foi possível localizar o registro do cliente'
)
# Retorno da informação
return data