const apiConfig = require("../config/apiConfig.js") const axios = require("axios"); const qs = require("qs"); const consultaViabilidade = async (lat, lon) => { const url = apiConfig.geogridApiUrl; const apiKey = apiConfig.geogridApiKey; const apiCookie = apiConfig.geogridApiCookie; try { // Parâmetros da consulta const params = { raio: 5000, latitude: lat, longitude: lon, "itens[]": "caixa", ordenarCampos: ["distancia"], ordenarPor: ["asc"], consultarIndividual: "S" }; // Console log com curl equivalente para depuração const curlParams = qs.stringify(params, { arrayFormat: 'brackets' }); console.log(`CURL equivalente: curl -X GET "${url}?${curlParams}" -H "api-key: ${apiKey}" -H "Cookie: ${apiCookie}"`); const response = await axios.get(url, { params, // força a serialização do tipo `itens[]=caixa` paramsSerializer: p => qs.stringify(p, { arrayFormat: 'brackets' }), headers: { 'api-key': apiKey, Cookie: apiCookie } }); const registros = response.data && response.data.registros; const primeiro = Array.isArray(registros) && registros.length ? registros[0] : null; // Retorna no formato esperado pelo controller (viabilidade.data.distancia) return { data: primeiro }; } catch (error) { console.error("Erro ao consultar viabilidade:", error && error.message ? error.message : error); throw new Error("Erro ao consultar viabilidade"); } }; module.exports = { consultaViabilidade };