Adiciona consulta de instancia Evolution por API key
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user