Adiciona consulta de instancia Evolution por API key

This commit is contained in:
Tiago
2026-10-06 17:31:58 -03:00
parent 8ca59a2b41
commit c28e88d7af
2 changed files with 27 additions and 0 deletions
@@ -83,6 +83,7 @@ public final class Main {
router.prefix("/api/webhooks/evolution/respostas/", externalBridgeHandler);
router.post("/api/integracao/mensagens", authMiddleware.exigirApiKey(externalBridgeHandler));
router.get("/api/integracao/respostas", authMiddleware.exigirApiKey(externalBridgeHandler));
router.get("/api/integracao/evolution-instancia", authMiddleware.exigirApiKey(externalBridgeHandler));
router.prefix("/api/master/", authMiddleware.exigirMaster(masterHandlers));
router.prefix("/api/financeiro/", authMiddleware.exigirFuncionario(financeiroHandlers));
router.prefix("/api/", authMiddleware.exigirFuncionario(clienteHandlers));
@@ -64,6 +64,10 @@ public final class ExternalBridgeHandler implements HttpHandler {
consultarResposta(ex, (long) ex.getAttribute(AuthMiddleware.ATTR_EMPRESA_ID));
return;
}
if ("/api/integracao/evolution-instancia".equals(path) && "GET".equals(method)) {
consultarEvolutionInstancia(ex, (long) ex.getAttribute(AuthMiddleware.ATTR_EMPRESA_ID));
return;
}
if ((path.equals("/api/webhooks/evolution/respostas") || path.startsWith("/api/webhooks/evolution/respostas/")) && "POST".equals(method)) {
receberRespostaEvolution(ex);
return;
@@ -142,6 +146,28 @@ public final class ExternalBridgeHandler implements HttpHandler {
}
}
private void consultarEvolutionInstancia(HttpExchange ex, long empresaId) throws Exception {
try (Connection c = masterDs.getMasterConnection()) {
Map<String,Object> inst = one(c, "SELECT id, empresa_id, instance_url, instance_token_enc, numero_whatsapp, status, solicitado_em, aprovado_em FROM evolution_instancias WHERE empresa_id=? ORDER BY solicitado_em DESC,id DESC LIMIT 1", empresaId);
if (inst == null) {
HttpResponses.json(ex, 404, Map.of("erro", "instancia_nao_configurada"));
return;
}
String token = str(inst.get("instance_token_enc"));
String[] parts = token.split(":", 2);
Map<String,Object> out = new LinkedHashMap<>();
out.put("id", inst.get("id"));
out.put("empresa_id", inst.get("empresa_id"));
out.put("instance_name", parts[0]);
out.put("instance_url", inst.get("instance_url"));
out.put("numero_whatsapp", inst.get("numero_whatsapp"));
out.put("status", inst.get("status"));
out.put("solicitado_em", inst.get("solicitado_em"));
out.put("aprovado_em", inst.get("aprovado_em"));
HttpResponses.json(ex, 200, Map.of("ok", true, "instancia", out));
}
}
private void receberRespostaEvolution(HttpExchange ex) throws Exception {
validarWebhookEvolution(ex);
String raw = rawBody(ex);