34 lines
No EOL
1.1 KiB
Python
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 ShowAction
|
|
|
|
|
|
class ShowService:
|
|
"""
|
|
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 = ShowAction()
|
|
|
|
# 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 |