UNPKG

video-auth-js-sdk

Version:

A SDK to authenticate users with camera through a realtime stream

145 lines (141 loc) 5.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _utility = _interopRequireDefault(require("./utility/utility")); var Messenger = /*#__PURE__*/function () { function Messenger(app) { (0, _classCallCheck2["default"])(this, Messenger); this._app = app; this._requestsList = []; } return (0, _createClass2["default"])(Messenger, [{ key: "sendMessage", value: function sendMessage(_ref) { var message = _ref.message, serverName = _ref.serverName, _ref$pushMsgType = _ref.pushMsgType, pushMsgType = _ref$pushMsgType === void 0 ? 3 : _ref$pushMsgType, _ref$onTimeout = _ref.onTimeout, onTimeout = _ref$onTimeout === void 0 ? null : _ref$onTimeout, _ref$timeoutTime = _ref.timeoutTime, timeoutTime = _ref$timeoutTime === void 0 ? 0 : _ref$timeoutTime, _ref$onResponse = _ref.onResponse, onResponse = _ref$onResponse === void 0 ? null : _ref$onResponse, _ref$onError = _ref.onError, onError = _ref$onError === void 0 ? null : _ref$onError; message.token = this._app.params.token; // let uniqueId; if (!message.uniqueId) { message.uniqueId = _utility["default"].generateUUID(); } /** * Message to send through async SDK * * + MessageWrapperVO {object} * - type {int} Type of ASYNC message based on content * + content {string} * -peerName {string} Name of receiver Peer * -receivers[] {int} Array of receiver peer ids (if you use this, peerName will be ignored) * -priority {int} Priority of message 1-10, lower has more priority * -messageId {int} Id of message on your side, not required * -ttl {int} Time to live for message in milliseconds * -content {string} Chat Message goes here after stringifying * - trackId {int} Tracker id of message that you receive from DIRANA previously (if you are replying a sync message) */ var data = { type: pushMsgType > 0 ? pushMsgType : 3, content: { peerName: serverName, priority: 1, content: JSON.stringify(message), ttl: this._app.params.messageTtl }, uniqueId: message.uniqueId }; this._app.async.send(data); if (timeoutTime) { this._requestsList.push({ uniqueId: message.uniqueId, data: data, onTimeout: onTimeout, onResponse: onResponse, onError: onError }); setTimeout(function () { onTimeout && onTimeout(); }, timeoutTime); } return { uniqueId: message.uniqueId }; } }, { key: "requestExists", value: function requestExists(uniqueId) { return !!this._requestsList.some(function (item) { return item.uniqueId == uniqueId; }); } }, { key: "removeRequest", value: function removeRequest(uniqueId) { for (var i in this._requestsList) { if (this._requestsList[i].uniqueId == uniqueId) delete this._requestsList[i]; } } }, { key: "getRequest", value: function getRequest(uniqueId) { return this._requestsList.find(function (item) { return item.uniqueId == uniqueId; }); } }, { key: "sendAiMessage", value: function sendAiMessage(message) { return this.sendMessage({ message: message, serverName: this._app.params.serverName }); } }, { key: "sendCallMessage", value: function sendCallMessage(message, onTimeout, timeoutTime, onResponse) { return this.sendMessage({ message: message, onTimeout: onTimeout, timeoutTime: timeoutTime, onResponse: onResponse, serverName: this._app.authSessionInfo.kurentoAddress }); } }, { key: "processResponse", value: function processResponse(message) { var req = this._requestsList.find(function (item) { return item.uniqueId == message.content.uniqueId; }); if (req) { req.onTimeout = null; if (!req.multipleResponse) { var ind = this._requestsList.findIndex(function (item) { return item.uniqueId == message.content.uniqueId; }); ind && delete this._requestsList[ind]; } req.onResponse && req.onResponse(message); } } }, { key: "clearRequests", value: function clearRequests() { this._requestsList = []; } }]); }(); var _default = exports["default"] = Messenger;