feat: done with elasticSearchQueryAsync

Signed-off-by: Muhammed Hussein Karimi <info@karimi.dev>
This commit is contained in:
Muhammed Hussein Karimi 2023-06-27 18:50:02 +03:30
parent 7b705219de
commit aef175f5d7

View file

@ -132,35 +132,48 @@ exports.pingAsync = function (hostname, ipv6 = false, size = 56) {
}); });
}; };
exports.elasticSearchQueryAsync = function (version, nodes, headers, index, query) { exports.elasticSearchQueryAsync = function (version, nodes, headers, index, query, options) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const { interval = 20, ssl = true } = options;
const timeoutID = setTimeout(() => {
log.debug("elasticSearchQuery", "ElasticSearchQuery timeout triggered");
reject(new Error("Timeout"));
}, interval * 1000 * 0.8);
const opts = {
headers: headers,
nodes: nodes,
ssl: {
rejectUnauthorized: ssl !== false,
},
};
let client; let client;
switch (version) { switch (version) {
case 6: case 6:
client = new esClient6({ client = new esClient6(opts);
headers: headers,
nodes: nodes,
});
break; break;
case 7: case 7:
client = new esClient7({ client = new esClient7(opts);
headers: headers,
nodes: nodes,
});
break; break;
case 8: case 8:
client = new esClient8({ client = new esClient8(opts);
headers: headers,
nodes: nodes,
});
break; break;
default: default:
throw new Error("Invalid Elasticsearch version"); throw new Error("Elasticsearch version is not valid");
}
try {
client.search({
index: index,
query: query,
});
clearTimeout(timeoutID);
resolve("Successfully ran query");
} catch (e) {
clearTimeout(timeoutID);
reject(new Error("Error querying data: " + e.message));
} }
client.search({
index: index,
query: query,
});
}); });
}; };