UNPKG

interfax

Version:

A wrapper around the InterFAX REST API for sending and receiving faxes.

71 lines (53 loc) 6.71 kB
'use strict'; 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==