Class ConfiguracaoAdminViewController
java.lang.Object
br.com.vantroba.bi.transporte.configuracao.ConfiguracaoAdminViewController
Tela admin de configurações globais (
bi_configuracao).
Proteção real via micronaut-security (ViewSecurityRule) em
/admin/** (exige sessão; gate de email @xadm.com.br no login). O controller
não declara @Secured — a regra de view decide o acesso.
Forma de URL e contrato dos endpoints:
GET /admin/configuracoes→ lista (JTEadmin/configuracoes).POST /admin/configuracoes→ cria nova chave (form-urlencoded).POST /admin/configuracoes/{id}→ edita o valor (form-urlencoded).
O controller fala com ConfiguracaoAdminService, nunca com o repositório
diretamente — ArchUnit (controllersDoNotDependOnRepositories).
Exceções de domínio (NotFoundException=404, ForbiddenException=403,
BadRequestException=400, ConflictException=409) propagam direto pro
cliente; o Micronaut traduz HttpStatusException no status correspondente. UI usa
query string (?erro=.../?ok=...) pra mensagens em redirects do happy path.
-
Constructor Summary
ConstructorsConstructorDescriptionCria o controller injetando o serviço admin. -
Method Summary
Modifier and TypeMethodDescriptionio.micronaut.http.HttpResponse<?> criar(io.micronaut.http.HttpRequest<?> request, String id, String tipo, String valor, String descricao, String csrf) Cria uma chave nova.io.micronaut.http.HttpResponse<?> Edita o valor de uma chave existente.Página de lista — mostra todas as configurações, com badge "sistema" e edição desabilitada nas rowssistema=TRUE.
-
Constructor Details
-
ConfiguracaoAdminViewController
Cria o controller injetando o serviço admin.- Parameters:
service- serviço de configurações.
-
-
Method Details
-
listar
@Get @View("admin/configuracoes") public Map<String,Object> listar(@Nullable @QueryValue String ok, @Nullable @QueryValue String erro) Página de lista — mostra todas as configurações, com badge "sistema" e edição desabilitada nas rowssistema=TRUE.- Parameters:
ok- id da chave alterada/criada (mensagem verde de sucesso).erro- código de erro para mensagem amarela (ex.:sistema,parse).- Returns:
- modelo da view
admin/configuracoes.
-
editar
@Post(value="/{id}", consumes="application/x-www-form-urlencoded") public io.micronaut.http.HttpResponse<?> editar(io.micronaut.http.HttpRequest<?> request, @PathVariable String id, @Body("valor") @Nullable String valor, @Body("_csrf") @Nullable String csrf) Edita o valor de uma chave existente. POST → redirect 302 para a lista (PRG).- Parameters:
request- a requisição HTTP (CSRF).id- a chave da configuração a editar.valor- o novo valor.csrf- token CSRF do form.- Returns:
- redirect 302.
-
criar
@Post(consumes="application/x-www-form-urlencoded") public io.micronaut.http.HttpResponse<?> criar(io.micronaut.http.HttpRequest<?> request, @Body("id") @Nullable String id, @Body("tipo") @Nullable String tipo, @Body("valor") @Nullable String valor, @Body("descricao") @Nullable String descricao, @Body("_csrf") @Nullable String csrf) Cria uma chave nova. POST → redirect 302 para a lista (PRG).- Parameters:
request- a requisição HTTP (CSRF).id- chave nova.tipo- tipo (STRING/INT/BOOL/TIMESTAMP/JSON).valor- valor inicial.descricao- descrição humana (opcional).csrf- token CSRF.- Returns:
- redirect 302.
-