clabot-fix
Version:
A bot to take the pain out of Contributor License Agreements
56 lines (48 loc) • 1.3 kB
JavaScript
(function() {
'use strict';
var mime, qs, _;
qs = require('qs');
_ = require('lodash');
mime = function(req) {
var str;
str = req.headers['content-type'] || '';
return str.split(';')[0];
};
exports.allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,POST');
res.header('Access-Control-Allow-Headers', 'Content-Type,X-Hub-Signature');
return next();
};
exports.provideClabotOptions = function(options) {
var middleware;
return middleware = function(req, res, next) {
req.clabotOptions = _.clone(options);
return next();
};
};
exports.parseBodyKeepRaw = function(req, res, next) {
var buf;
if (req.headers['x-hub-signature']) {
buf = '';
req.setEncoding('utf8');
req._body = true;
req.on('data', function(chunk) {
return buf += chunk;
});
return req.on('end', function() {
var err;
req.rawBody = buf;
try {
req.body = (buf.length ? qs.parse(req.rawBody) : {});
return next();
} catch (_error) {
err = _error;
return next(err);
}
});
} else {
return next();
}
};
}).call(this);