video-auth-js-sdk
Version:
A SDK to authenticate users with camera through a realtime stream
106 lines (104 loc) • 4.22 kB
JavaScript
"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 _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _utility = _interopRequireDefault(require("./utility/utility"));
var _podasyncWsOnly = _interopRequireDefault(require("podasync-ws-only"));
var _errorHandler = require("./errorHandler");
var AsyncManager = /*#__PURE__*/function () {
function AsyncManager(app) {
(0, _classCallCheck2["default"])(this, AsyncManager);
this._app = app;
var asyncParams = {
appId: app.params.appId,
protocol: 'websocket',
socketAddress: app.params.socketAddress,
serverName: app.params.serverName,
deviceId: app.params.deviceId,
wsConnectionWaitTime: 10000,
reconnectOnClose: false,
// asyncLogging: app.sdkParams.asyncLogging,
// logLevel: (app.sdkParams.consoleLogging ? 3 : 1),
// retryStepTimerTime: protocolManager.getRetryStepTimerTime(),
// onStartWithRetryStepGreaterThanZero: onAsyncStateChange,
// msgLogCallback: app.publicCallbacks.onDebug || null,
// asyncLogCallback: asyncLogCallback || null,
onDeviceId: this._onDeviceId.bind(this)
};
this._asyncClient = new _podasyncWsOnly["default"](asyncParams);
this._bindListeneres();
// this._requestsList = {}
}
return (0, _createClass2["default"])(AsyncManager, [{
key: "send",
value: function send(message) {
this._asyncClient.send(message);
}
}, {
key: "_onDeviceId",
value: function _onDeviceId(deviceId) {
if (!this._localDeviceId) {
this._localDeviceId = deviceId;
}
this._asyncClient.registerDevice(this._localDeviceId);
}
}, {
key: "_bindListeneres",
value: function _bindListeneres() {
this._asyncClient.on('asyncReady', function () {
this._app.events.emit(this._app.events.eventsList.ASYNC_READY);
}.bind(this));
// this._asyncClient.on('stateChange', this._onAsyncMessage);
this._asyncClient.on('message', this._onAsyncMessage.bind(this));
this._asyncClient.on('error', function (error) {
console.error(error);
this._app.publicCallbacks.onError({
code: _errorHandler.errorList.CONNECT_TO_SOCKET_FAILED.code,
message: _errorHandler.errorList.CONNECT_TO_SOCKET_FAILED.message
});
}.bind(this));
}
}, {
key: "_onAsyncMessage",
value: function _onAsyncMessage(data, ack) {
var jsonMessage = typeof data.content === 'string' && _utility["default"].isValidJson(data.content) ? JSON.parse(data.content) : data.content;
if (data.senderName) {
if (data.senderName == this._app.events.eventsList.AI_MESSAGE) {
this._app.events.emit(this._app.events.eventsList.AI_MESSAGE, jsonMessage);
}
}
if (jsonMessage && jsonMessage.chatId && jsonMessage.chatId == this._app.authSessionInfo.callId) {
this._app.events.emit(this._app.events.eventsList.CALL_MESSAGE, jsonMessage);
}
this._app.messenger.processResponse(data);
ack && ack();
}
}, {
key: "destroy",
value: function () {
var _destroy = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return this._asyncClient.logout();
case 2:
case "end":
return _context.stop();
}
}, _callee, this);
}));
function destroy() {
return _destroy.apply(this, arguments);
}
return destroy;
}()
}]);
}();
var _default = exports["default"] = AsyncManager;