monitoring-api/packages/v1/administrativo/services/log/log_save_service.py
2025-10-06 09:30:41 -03:00

44 lines
No EOL
2 KiB
Python

from actions.dynamic_import.dynamic_import import DynamicImport
# NOTE: O novo esquema deve ser criado para o Log.
# Assumimos que a UserSaveSchema foi substituída por LogSaveSchema,
# que conteria os campos client_id e file.
# from packages.v1.administrativo.schemas.log_schema import LogSaveSchema
from packages.v1.administrativo.actions.log.log_save_action import SaveAction
from fastapi import status, HTTPException
class SaveService:
# Mantendo o padrão de nome de classe, mas renomeando a classe principal
# para refletir a ação de 'Salvar' (Save) em vez de 'Usuário Salvar' (UserSave).
# O nome do arquivo já indica 'log_save_service'.
def __init__(self):
# Action responsável por carregar as services de acordo com o estado
self.dynamic_import = DynamicImport()
# Define o pacote que deve ser carregado
self.dynamic_import.set_package("administrativo")
# Define a tabela que o pacote pertence
self.dynamic_import.set_table("log")
pass
# O esquema de entrada deve refletir os campos da tabela 'log'
# (client_id e file, já que date_post é gerado no banco)
# def execute(self, log_schema: LogSaveSchema):
# Usando 'schema' para manter a abstração, já que o schema exato não está definido
def execute(self, schema):
# NOTE: A lógica de validação de email foi REMOVIDA
# porque não é aplicável à tabela 'log' (não há campo 'email').
# A validação de 'client_id' ou 'file' deve ocorrer no schema (Pydantic).
# Instanciamento de ações com prefixo 'log' e nome mantido
save_action = SaveAction()
# Retorna o log salvo
return save_action.execute(schema)
# NOTE: Foi mantido o padrão 'SaveService' para a classe principal.
# Se o nome original 'UserSaveService' for um padrão rigoroso,
# o nome da classe pode ser ajustado para 'LogSaveService'.
# No entanto, o padrão de design geralmente usa o nome da ação (Save) + Service.