silentjs
Version:
NodeJS API Framework
60 lines (46 loc) • 1.4 kB
JavaScript
var lodash = require('lodash');
var getValues = function (keys, parameters) {
var values = {};
var key;
if (lodash.isArray(keys)) {
lodash.each(keys, function (key) {
values[key] = parameters[key];
});
} else {
key = keys;
values = parameters[key];
}
return values;
};
var Request = function (request) {
this.request = request;
};
Request.prototype.getRequestData = function () {
var request = this.request;
var query = request.query;
var parameters = request.params;
var body = request.body;
return lodash.extend({}, query, parameters, body);
};
Request.prototype.getParameters = function (keys) {
return getValues(keys, this.request.params);
};
Request.prototype.getQueryValues = function (keys) {
return getValues(keys, this.request.query);
};
Request.prototype.getHeaderValues = function (keys) {
return getValues(keys, this.request.headers);
};
Request.prototype.getData = function (keys) {
return getValues(keys, this.request.body);
};
Request.prototype.getToken = function () {
return this.getData('token') || this.getQueryValues('token') || this.getHeaderValues('x-access-token');
};
Request.prototype.get = function (attr) {
return this.request[attr];
};
Request.prototype.set = function (attr, value) {
this.request[attr] = value;
};
module.exports = Request;