UNPKG

backendless

Version:

Backendless JavaScript SDK for Node.js and the browser

417 lines (416 loc) 16.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _channel = _interopRequireDefault(require("./channel")); var _helpers = require("./helpers"); var Messaging = /*#__PURE__*/function () { function Messaging(app) { (0, _classCallCheck2["default"])(this, Messaging); this.app = app; this.Bodyparts = _helpers.Bodyparts; this.PublishOptions = _helpers.PublishOptions; this.DeliveryOptions = _helpers.DeliveryOptions; this.PublishOptionsHeaders = _helpers.PublishOptionsHeaders; this.EmailEnvelope = _helpers.EmailEnvelope; } (0, _createClass2["default"])(Messaging, [{ key: "subscribe", value: function subscribe(channelName) { validateChannelName(channelName); return new _channel["default"]({ name: channelName }, this.app); } }, { key: "publish", value: function () { var _publish = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(channelName, message, publishOptions, deliveryOptions) { var data; return _regenerator["default"].wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: validateChannelName(channelName); data = { message: message }; if (!publishOptions) { _context.next = 6; break; } if (!(Array.isArray(publishOptions) || (0, _typeof2["default"])(publishOptions) !== 'object')) { _context.next = 5; break; } throw new Error('"publishOptions" argument must be an object.'); case 5: (0, _extends2["default"])(data, publishOptions); case 6: if (!deliveryOptions) { _context.next = 10; break; } if (!(Array.isArray(deliveryOptions) || (0, _typeof2["default"])(deliveryOptions) !== 'object')) { _context.next = 9; break; } throw new Error('"deliveryOptions" argument must be an object.'); case 9: (0, _extends2["default"])(data, deliveryOptions); case 10: return _context.abrupt("return", this.app.request.post({ url: this.app.urls.messagingChannel(channelName), data: data })); case 11: case "end": return _context.stop(); } }, _callee, this); })); function publish(_x, _x2, _x3, _x4) { return _publish.apply(this, arguments); } return publish; }() }, { key: "deleteChannel", value: function () { var _deleteChannel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(channelName) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: validateChannelName(channelName); return _context2.abrupt("return", this.app.request["delete"]({ url: this.app.urls.messagingChannelName(channelName) })); case 2: case "end": return _context2.stop(); } }, _callee2, this); })); function deleteChannel(_x5) { return _deleteChannel.apply(this, arguments); } return deleteChannel; }() }, { key: "pushWithTemplate", value: function () { var _pushWithTemplate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(templateName, templateValues) { var data; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (!(!templateName || typeof templateName !== 'string')) { _context3.next = 2; break; } throw new Error('Push Template Name must be provided and must be a string.'); case 2: data = {}; if (templateValues) { data.templateValues = templateValues; } return _context3.abrupt("return", this.app.request.post({ url: this.app.urls.messagingPushWithTemplate(templateName), data: data })); case 5: case "end": return _context3.stop(); } }, _callee3, this); })); function pushWithTemplate(_x6, _x7) { return _pushWithTemplate.apply(this, arguments); } return pushWithTemplate; }() }, { key: "sendEmail", value: function () { var _sendEmail = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(subject, bodyParts, recipients, attachments) { var data; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: if (!(!subject || typeof subject !== 'string')) { _context4.next = 2; break; } throw new Error('Email Subject must be provided and must be a string.'); case 2: if (!(!bodyParts || Array.isArray(bodyParts) || (0, _typeof2["default"])(bodyParts) !== 'object')) { _context4.next = 4; break; } throw new Error('BodyParts must be an object'); case 4: if (!(!bodyParts.textmessage && !bodyParts.htmlmessage)) { _context4.next = 6; break; } throw new Error('BodyParts must contain at least one property of [ textmessage | htmlmessage ]'); case 6: if (!(!Array.isArray(recipients) || !recipients.length)) { _context4.next = 8; break; } throw new Error('Recipients must be a non empty array.'); case 8: data = { subject: subject, bodyparts: bodyParts, to: recipients }; if (Array.isArray(attachments) && attachments.length) { data.attachment = attachments; } return _context4.abrupt("return", this.app.request.post({ url: this.app.urls.messagingEmail(), data: data })); case 11: case "end": return _context4.stop(); } }, _callee4, this); })); function sendEmail(_x8, _x9, _x10, _x11) { return _sendEmail.apply(this, arguments); } return sendEmail; }() }, { key: "sendEmailFromTemplate", value: function () { var _sendEmailFromTemplate = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(templateName, envelopeObject, templateValues, attachments) { var data; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: if (!(!templateName || typeof templateName !== 'string')) { _context5.next = 2; break; } throw new Error('Email Template Name must be provided and must be a string.'); case 2: if (envelopeObject instanceof _helpers.EmailEnvelope) { _context5.next = 4; break; } throw new Error('EmailEnvelope is required and should be instance of Backendless.Messaging.EmailEnvelope'); case 4: data = envelopeObject.toJSON(); data['template-name'] = templateName; if (templateValues && !Array.isArray(templateValues)) { data['template-values'] = templateValues; } if (Array.isArray(templateValues) && !attachments) { attachments = templateValues; } if (attachments) { data.attachment = attachments; } return _context5.abrupt("return", this.app.request.post({ url: this.app.urls.emailTemplateSend(), data: data })); case 10: case "end": return _context5.stop(); } }, _callee5, this); })); function sendEmailFromTemplate(_x12, _x13, _x14, _x15) { return _sendEmailFromTemplate.apply(this, arguments); } return sendEmailFromTemplate; }() }, { key: "cancel", value: function () { var _cancel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(messageId) { return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: if (!(!messageId || typeof messageId !== 'string')) { _context6.next = 2; break; } throw new Error('Message ID must be provided and must be a string.'); case 2: return _context6.abrupt("return", this.app.request["delete"]({ url: this.app.urls.messagingMessage(messageId) })); case 3: case "end": return _context6.stop(); } }, _callee6, this); })); function cancel(_x16) { return _cancel.apply(this, arguments); } return cancel; }() }, { key: "registerDevice", value: function () { var _registerDevice = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(deviceToken, channels, expiration) { var device, data; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: device = this.app.device; data = { deviceToken: deviceToken, deviceId: device.uuid, os: device.platform, osVersion: device.version }; if (Array.isArray(channels)) { data.channels = channels; } if (typeof expiration === 'number') { data.expiration = expiration; } else if (expiration instanceof Date) { data.expiration = expiration.getTime() / 1000; } return _context7.abrupt("return", this.app.request.post({ url: this.app.urls.messagingRegistrations(), data: data })); case 5: case "end": return _context7.stop(); } }, _callee7, this); })); function registerDevice(_x17, _x18, _x19) { return _registerDevice.apply(this, arguments); } return registerDevice; }() }, { key: "getRegistrations", value: function () { var _getRegistrations = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8() { var device; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) switch (_context8.prev = _context8.next) { case 0: device = this.app.device; return _context8.abrupt("return", this.app.request.get({ url: this.app.urls.messagingRegistrationDevice(device.uuid) })); case 2: case "end": return _context8.stop(); } }, _callee8, this); })); function getRegistrations() { return _getRegistrations.apply(this, arguments); } return getRegistrations; }() }, { key: "unregisterDevice", value: function () { var _unregisterDevice = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() { var device; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) switch (_context9.prev = _context9.next) { case 0: device = this.app.device; return _context9.abrupt("return", this.app.request["delete"]({ url: this.app.urls.messagingRegistrationDevice(device.uuid) })); case 2: case "end": return _context9.stop(); } }, _callee9, this); })); function unregisterDevice() { return _unregisterDevice.apply(this, arguments); } return unregisterDevice; }() }, { key: "getMessageStatus", value: function () { var _getMessageStatus = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(messageId) { return _regenerator["default"].wrap(function _callee10$(_context10) { while (1) switch (_context10.prev = _context10.next) { case 0: if (!(!messageId || typeof messageId !== 'string')) { _context10.next = 2; break; } throw new Error('Message ID must be provided and must be a string.'); case 2: return _context10.abrupt("return", this.app.request.get({ url: this.app.urls.messagingMessage(messageId) })); case 3: case "end": return _context10.stop(); } }, _callee10, this); })); function getMessageStatus(_x20) { return _getMessageStatus.apply(this, arguments); } return getMessageStatus; }() }, { key: "getPushTemplates", value: function () { var _getPushTemplates = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(deviceType) { return _regenerator["default"].wrap(function _callee11$(_context11) { while (1) switch (_context11.prev = _context11.next) { case 0: if (!(!deviceType || typeof deviceType !== 'string')) { _context11.next = 2; break; } throw new Error('Device Type must be provided and must be a string.'); case 2: return _context11.abrupt("return", this.app.request.get({ url: this.app.urls.messagingPushTemplates(deviceType) })); case 3: case "end": return _context11.stop(); } }, _callee11, this); })); function getPushTemplates(_x21) { return _getPushTemplates.apply(this, arguments); } return getPushTemplates; }() }]); return Messaging; }(); exports["default"] = Messaging; function validateChannelName(channelName) { if (!channelName || typeof channelName !== 'string') { throw new Error('Channel Name must be provided and must be a string.'); } if (channelName.indexOf('/') >= 0) { throw new Error('Channel Name can not contain slash chars'); } }