Class ConfiguracaoAdminService

java.lang.Object
br.com.vantroba.bi.transporte.configuracao.ConfiguracaoAdminService

@Singleton public class ConfiguracaoAdminService extends Object
Operações da tela admin de configurações (/admin/configuracoes).

Intermediário obrigatório entre ConfiguracaoAdminViewController e BiConfiguracaoRepository — ArchUnit (controllersDoNotDependOnRepositories) proíbe acesso direto do controller ao repo.

Bypassa o cache do ConfigService: a tela admin sempre lê o estado fresco do PG pra refletir mudanças que o operador acabou de fazer.

  • Constructor Details

    • ConfiguracaoAdminService

      public ConfiguracaoAdminService(BiConfiguracaoRepository repository)
      Cria o serviço injetando o repositório.
      Parameters:
      repository - repositório de configurações.
  • Method Details

    • listar

      public List<BiConfiguracao> listar()
      Lista todas as configurações em ordem alfabética. Bypassa o cache do ConfigService.
      Returns:
      configurações cadastradas.
    • editar

      public void editar(String id, String novoValor)
      Edita o valor de uma configuração existente não-sistema. Valida que novoValor parseia pelo tipo declarado da row antes de persistir.
      Parameters:
      id - chave da configuração.
      novoValor - novo valor (texto).
      Throws:
      br.com.xadm.comum.web.BadRequestException - se novoValor não parseia pelo tipo.
      br.com.xadm.comum.web.NotFoundException - se id não existe.
      br.com.xadm.comum.web.ForbiddenException - se a row é sistema.
    • criar

      public void criar(String id, String tipo, String valor, String descricao)
      Cria uma chave nova. Sempre sistema=FALSE (o repo força). Valida o id contra a regex ID_VALIDO, o tipo contra TIPOS_VALIDOS e o valor contra o tipo.
      Parameters:
      id - chave nova (precisa bater com ID_VALIDO).
      tipo - um dos TIPOS_VALIDOS.
      valor - valor inicial.
      descricao - descrição humana (pode ser nula/vazia).
      Throws:
      br.com.xadm.comum.web.BadRequestException - se id/tipo/valor são inválidos.
      br.com.xadm.comum.web.ConflictException - se id já existe.