interfax
Version:
A wrapper around the InterFAX REST API for sending and receiving faxes.
71 lines (53 loc) • 6.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _image = require('./image');
var _image2 = _interopRequireDefault(_image);
var _location = require('./location');
var _location2 = _interopRequireDefault(_location);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ResponseHandler = function ResponseHandler(emitter, debug) {
_classCallCheck(this, ResponseHandler);
return function (response) {
if (debug) {
console.log(response);
} // eslint-disable-line no-console
var result = Buffer.from('');
var isJson = response.headers['content-type'] == 'text/json';
var isTiff = response.headers['content-type'] == 'image/tiff';
var isPdf = response.headers['content-type'] == 'application/pdf';
var isImage = isTiff || isPdf;
var isLocation = response.headers['location'] !== undefined;
response.on('data', function (chunk) {
result = Buffer.concat([result, chunk]);
});
response.on('end', function () {
if (debug) {
console.log(result);
} // eslint-disable-line no-console
if (isLocation) {
result = new _location2.default(response.headers['location']);
} else if (isImage) {
result = new _image2.default(result, response.headers['content-type']);
} else if (isJson && result.length > 0) {
result = JSON.parse(result.toString());
} else if (isJson && result.length == 0) {
result = null;
}
if (response.statusCode >= 300) {
emitter.emit('reject', result);
} else {
emitter.emit('resolve', result);
}
});
response.on('close', function (error) {
emitter.emit('reject', error);
});
};
};
exports.default = ResponseHandler;
module.exports = exports['default'];
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNwb25zZS1oYW5kbGVyLmpzIl0sIm5hbWVzIjpbIlJlc3BvbnNlSGFuZGxlciIsImVtaXR0ZXIiLCJkZWJ1ZyIsInJlc3BvbnNlIiwiY29uc29sZSIsImxvZyIsInJlc3VsdCIsIkJ1ZmZlciIsImZyb20iLCJpc0pzb24iLCJoZWFkZXJzIiwiaXNUaWZmIiwiaXNQZGYiLCJpc0ltYWdlIiwiaXNMb2NhdGlvbiIsInVuZGVmaW5lZCIsIm9uIiwiY2h1bmsiLCJjb25jYXQiLCJMb2NhdGlvbiIsIkltYWdlIiwibGVuZ3RoIiwiSlNPTiIsInBhcnNlIiwidG9TdHJpbmciLCJzdGF0dXNDb2RlIiwiZW1pdCIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7SUFFTUEsZSxHQUNKLHlCQUFZQyxPQUFaLEVBQXFCQyxLQUFyQixFQUE0QjtBQUFBOztBQUMxQixTQUFPLFVBQUNDLFFBQUQsRUFBYztBQUNuQixRQUFJRCxLQUFKLEVBQVc7QUFBRUUsY0FBUUMsR0FBUixDQUFZRixRQUFaO0FBQXdCLEtBRGxCLENBQ21COztBQUV0QyxRQUFJRyxTQUFTQyxPQUFPQyxJQUFQLENBQVksRUFBWixDQUFiO0FBQ0EsUUFBSUMsU0FBY04sU0FBU08sT0FBVCxDQUFpQixjQUFqQixLQUFvQyxXQUF0RDtBQUNBLFFBQUlDLFNBQWNSLFNBQVNPLE9BQVQsQ0FBaUIsY0FBakIsS0FBb0MsWUFBdEQ7QUFDQSxRQUFJRSxRQUFjVCxTQUFTTyxPQUFULENBQWlCLGNBQWpCLEtBQW9DLGlCQUF0RDtBQUNBLFFBQUlHLFVBQWNGLFVBQVVDLEtBQTVCOztBQUVBLFFBQUlFLGFBQWNYLFNBQVNPLE9BQVQsQ0FBaUIsVUFBakIsTUFBaUNLLFNBQW5EOztBQUVBWixhQUFTYSxFQUFULENBQVksTUFBWixFQUFvQixVQUFTQyxLQUFULEVBQWdCO0FBQ2xDWCxlQUFTQyxPQUFPVyxNQUFQLENBQWMsQ0FBQ1osTUFBRCxFQUFTVyxLQUFULENBQWQsQ0FBVDtBQUNELEtBRkQ7O0FBSUFkLGFBQVNhLEVBQVQsQ0FBWSxLQUFaLEVBQW1CLFlBQVc7QUFDNUIsVUFBSWQsS0FBSixFQUFXO0FBQUVFLGdCQUFRQyxHQUFSLENBQVlDLE1BQVo7QUFBc0IsT0FEUCxDQUNROztBQUVwQyxVQUFJUSxVQUFKLEVBQWdCO0FBQUVSLGlCQUFTLElBQUlhLGtCQUFKLENBQWFoQixTQUFTTyxPQUFULENBQWlCLFVBQWpCLENBQWIsQ0FBVDtBQUFzRCxPQUF4RSxNQUNLLElBQUlHLE9BQUosRUFBYTtBQUFFUCxpQkFBUyxJQUFJYyxlQUFKLENBQVVkLE1BQVYsRUFBa0JILFNBQVNPLE9BQVQsQ0FBaUIsY0FBakIsQ0FBbEIsQ0FBVDtBQUErRCxPQUE5RSxNQUNBLElBQUlELFVBQVVILE9BQU9lLE1BQVAsR0FBZ0IsQ0FBOUIsRUFBaUM7QUFBRWYsaUJBQVNnQixLQUFLQyxLQUFMLENBQVdqQixPQUFPa0IsUUFBUCxFQUFYLENBQVQ7QUFBeUMsT0FBNUUsTUFDQSxJQUFJZixVQUFVSCxPQUFPZSxNQUFQLElBQWlCLENBQS9CLEVBQWtDO0FBQUVmLGlCQUFTLElBQVQ7QUFBZ0I7O0FBRXpELFVBQUlILFNBQVNzQixVQUFULElBQXVCLEdBQTNCLEVBQWdDO0FBQzlCeEIsZ0JBQVF5QixJQUFSLENBQWEsUUFBYixFQUF1QnBCLE1BQXZCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xMLGdCQUFReUIsSUFBUixDQUFhLFNBQWIsRUFBd0JwQixNQUF4QjtBQUNEO0FBQ0YsS0FiRDs7QUFlQUgsYUFBU2EsRUFBVCxDQUFZLE9BQVosRUFBcUIsVUFBU1csS0FBVCxFQUFnQjtBQUNuQzFCLGNBQVF5QixJQUFSLENBQWEsUUFBYixFQUF1QkMsS0FBdkI7QUFDRCxLQUZEO0FBR0QsR0FqQ0Q7QUFrQ0QsQzs7a0JBR1kzQixlOztBQUNmNEIsT0FBT0MsT0FBUCxHQUFpQkEsUUFBUSxTQUFSLENBQWpCIiwiZmlsZSI6InJlc3BvbnNlLWhhbmRsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSW1hZ2UgICAgZnJvbSAnLi9pbWFnZSc7XHJcbmltcG9ydCBMb2NhdGlvbiBmcm9tICcuL2xvY2F0aW9uJztcclxuXHJcbmNsYXNzIFJlc3BvbnNlSGFuZGxlciB7XHJcbiAgY29uc3RydWN0b3IoZW1pdHRlciwgZGVidWcpIHtcclxuICAgIHJldHVybiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGRlYnVnKSB7IGNvbnNvbGUubG9nKHJlc3BvbnNlKTsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcclxuXHJcbiAgICAgIGxldCByZXN1bHQgPSBCdWZmZXIuZnJvbSgnJyk7XHJcbiAgICAgIGxldCBpc0pzb24gICAgICA9IHJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09ICd0ZXh0L2pzb24nO1xyXG4gICAgICBsZXQgaXNUaWZmICAgICAgPSByZXNwb25zZS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9PSAnaW1hZ2UvdGlmZic7XHJcbiAgICAgIGxldCBpc1BkZiAgICAgICA9IHJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09ICdhcHBsaWNhdGlvbi9wZGYnO1xyXG4gICAgICBsZXQgaXNJbWFnZSAgICAgPSBpc1RpZmYgfHwgaXNQZGY7XHJcblxyXG4gICAgICBsZXQgaXNMb2NhdGlvbiAgPSByZXNwb25zZS5oZWFkZXJzWydsb2NhdGlvbiddICE9PSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7XHJcbiAgICAgICAgcmVzdWx0ID0gQnVmZmVyLmNvbmNhdChbcmVzdWx0LCBjaHVua10pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICBpZiAoZGVidWcpIHsgY29uc29sZS5sb2cocmVzdWx0KTsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnNvbGVcclxuXHJcbiAgICAgICAgaWYgKGlzTG9jYXRpb24pIHsgcmVzdWx0ID0gbmV3IExvY2F0aW9uKHJlc3BvbnNlLmhlYWRlcnNbJ2xvY2F0aW9uJ10pOyB9XHJcbiAgICAgICAgZWxzZSBpZiAoaXNJbWFnZSkgeyByZXN1bHQgPSBuZXcgSW1hZ2UocmVzdWx0LCByZXNwb25zZS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSk7IH1cclxuICAgICAgICBlbHNlIGlmIChpc0pzb24gJiYgcmVzdWx0Lmxlbmd0aCA+IDApIHsgcmVzdWx0ID0gSlNPTi5wYXJzZShyZXN1bHQudG9TdHJpbmcoKSk7IH1cclxuICAgICAgICBlbHNlIGlmIChpc0pzb24gJiYgcmVzdWx0Lmxlbmd0aCA9PSAwKSB7IHJlc3VsdCA9IG51bGw7IH1cclxuXHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1c0NvZGUgPj0gMzAwKSB7XHJcbiAgICAgICAgICBlbWl0dGVyLmVtaXQoJ3JlamVjdCcsIHJlc3VsdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVtaXR0ZXIuZW1pdCgncmVzb2x2ZScsIHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHJlc3BvbnNlLm9uKCdjbG9zZScsIGZ1bmN0aW9uKGVycm9yKSB7XHJcbiAgICAgICAgZW1pdHRlci5lbWl0KCdyZWplY3QnLCBlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFJlc3BvbnNlSGFuZGxlcjtcclxubW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzWydkZWZhdWx0J107XHJcbiJdfQ==