video-auth-js-sdk
Version:
A SDK to authenticate users with camera through a realtime stream
145 lines (141 loc) • 5.04 kB
JavaScript
;
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;