const axios = require('axios'); module.exports.getDatasetInfoFromES = async (elasticsearchUrl, layer, fields, cookies, pathToFile) => { let options = { method: 'POST', url: `${elasticsearchUrl}/_search?request_cache=false`, data: { "from": 0, "size": 1, "_source": fields, "query": { "term": { "metadata-fr.link.name.keyword": layer } } }, }; if (pathToFile) { options = { method: 'POST', url: `${elasticsearchUrl}/_search?request_cache=false`, data: { "from": 0, "size": 1, "_source": fields, "query": { "bool": { "should": [ { "term": { "metadata-fr.link.name.keyword": layer } }, { "match_phrase": { "metadata-fr.link.url": { "query": pathToFile } } } ] } } } }; } if (cookies) { options.headers = { cookie: cookies, }; } let response; try { response = await axios(options) } catch (err) { throw { err, status: 500, message: "Request to Elasticsearch failed", }; } // If no results are found it means the specified dataset mvt layer doesn't exists if (response.data.hits.hits < 1) { throw { status: 404, message: "Layer not found.", }; } return response.data.hits.hits[0]._source; };