UNPKG

fcr-core

Version:

Core APIs for building online scenes

48 lines (47 loc) 2.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.FcrAnnotationControlFactoryImpl = void 0; require("core-js/modules/es.error.cause.js"); require("core-js/modules/es.json.stringify.js"); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _control = require("./control"); var _logger = require("../../../utilities/logger"); var _error = require("../../../utilities/error"); var _sharedStorage = require("../../../utilities/shared-storage"); class FcrAnnotationControlFactoryImpl { constructor() { (0, _defineProperty2.default)(this, "logger", (0, _logger.createLogger)({ prefix: 'FcrAnnotationControlFactory' })); } createForSubProcess(rtmClient, hasOperationPrivilege, config) { this.logger.info("[annotation]: create for sub process with config: ".concat(JSON.stringify(config))); return new _control.FcrStandaloneAnnotationControlImpl(rtmClient, config, hasOperationPrivilege, () => { const forgeInitConfig = (0, _sharedStorage.getAnnotationBoardOptions)(); if (!forgeInitConfig) { throw (0, _error.generateFcrCoreClientError)(_error.FcrErrorModuleCode.ROOM_WHITEBOARD, _error.FcrErrorCode.UNDEFINED_ERROR, "whiteboard init config is not exist", new Error("whiteboard init config is not exist")); } return Promise.resolve(forgeInitConfig); }); } createForMainProcess(rtmClient, hasOperationPrivilege, config, api) { const control = new _control.FcrAnnotationControlImpl(rtmClient, config, hasOperationPrivilege, this._createForgeInitConfigFetcher(api, config.roomId, config.userId)); return control; } _createForgeInitConfigFetcher(api, roomId, userId) { const getObjectInitConfig = async (roomId, userId) => { return await (0, _error.handleRequestError)(() => api.getAnnotationToken({ roomId, userId }), _error.FcrErrorModuleCode.ROOM_WHITEBOARD, 'get annotation token failed'); }; return async () => { const response = await getObjectInitConfig(roomId, userId); return response.data; }; } } exports.FcrAnnotationControlFactoryImpl = FcrAnnotationControlFactoryImpl;