paypro: misc work.

This commit is contained in:
Christopher Jeffrey 2014-07-31 14:41:50 -07:00 committed by Manuel Araoz
commit 7b678a91b5
3 changed files with 17 additions and 65 deletions

65
app.js
View file

@ -14,73 +14,24 @@ app.start = function(port, callback) {
if (process.env.USE_HTTPS) {
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';
var fs = require('fs');
var path = require('path');
var bc = path.dirname(require.resolve('bitcore/package.json'));
var server = require('https').createServer({
key: fs.readFileSync(bc + '/test/data/x509.key'),
cert: fs.readFileSync(bc + '/test/data/x509.crt')
});
// var fs = require('fs');
// var server = require('https').createServer({
// key: fs.readFileSync(bc + '/test/data/x509.key'),
// cert: fs.readFileSync(bc + '/test/data/x509.crt')
// });
var pserver = require(bc + '/examples/PayPro/server.js');
pserver.removeListener('request', pserver.app);
pserver.on('request', function(req, res) {
var statusCode = res.statusCode;
var headers = Object.keys(res._headers || {}).reduce(function(out, key) {
out[key] = res._headers[key];
return out;
}, {});
var headerNames = Object.keys(res._headerNames || {}).reduce(function(out, key) {
out[key] = res._headerNames[key];
return out;
}, {});
var writeHead = res.writeHead;
var write = res.write;
var end = res.end;
var status;
res.writeHead = function(s) {
status = s;
if (status > 400) {
return;
}
return writeHead.apply(this, arguments);
};
res.write = function() {
if (status && status > 400) {
return true;
}
return write.apply(this, arguments);
};
res.end = function() {
var self = this;
var args = Array.prototype.slice.call(arguments);
process.nextTick(function() {
self.statusCode = statusCode;
self._headers = headers;
self._headerNames = headerNames;
self.writeHead = writeHead;
self.write = write;
self.end = end;
if ((status || self.statusCode) > 400) {
return pserver.app(req, res);
}
return end.apply(self, args);
});
return true;
};
if (req.url.indexOf('/-/') === 0) {
return pserver.app(req, res);
}
return app(req, res);
});
pserver.listen(port, function() {
callback('https://localhost:' + port);
});
return;
}