Extracting filterHeader into its own module for reuse

This commit is contained in:
Shaunak Kashyap 2016-04-14 17:50:24 -07:00
parent 836c740e56
commit 81631ffc2e
No known key found for this signature in database
GPG key ID: 0512E188DDE4FF2A
2 changed files with 21 additions and 16 deletions

View file

@ -0,0 +1,18 @@
import _ from 'lodash';
module.exports = function (originalHeaders, headersToKeep) {
const normalizeHeader = function (header) {
return header.trim().toLowerCase();
};
// Normalize list of headers we want to allow in upstream request
const headersToKeepNormalized = headersToKeep.map(normalizeHeader);
// Normalize original headers in request
const originalHeadersNormalized = _.mapKeys(originalHeaders, function (headerValue, headerName) {
return normalizeHeader(headerName);
});
return _.pick(originalHeaders, headersToKeepNormalized);
};

View file

@ -1,23 +1,9 @@
import querystring from 'querystring';
import { resolve } from 'url';
import _ from 'lodash';
import filterHeaders from './filter_headers';
module.exports = function mapUri(server, prefix) {
const normalizeHeader = function (header) {
return header.trim().toLowerCase();
};
const filterHeaders = function (originalHeaders) {
const originalHeadersNormalized = _.mapKeys(originalHeaders, function (headerValue, headerName) {
return normalizeHeader(headerName);
});
const headersToKeep = server.config().get('elasticsearch.requestHeaders');
const headersToKeepNormalized = headersToKeep.map(normalizeHeader);
return _.pick(originalHeaders, headersToKeepNormalized);
};
const config = server.config();
return function (request, done) {
const path = request.path.replace('/elasticsearch', '');
@ -28,6 +14,7 @@ module.exports = function mapUri(server, prefix) {
}
const query = querystring.stringify(request.query);
if (query) url += '?' + query;
done(null, url, filterHeaders(request.headers));
const filteredHeaders = filterHeaders(request.headers, server.config().get('elasticsearch.requestHeaders'));
done(null, url, filteredHeaders);
};
};