-
FORESTIER Fabien authoredFORESTIER Fabien authored
elasticsearch.helpers.js 1.53 KiB
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;
};