UNPKG

fcr-core

Version:

Core APIs for building online scenes

43 lines (42 loc) 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FcrAnnotationControlFactoryImpl = void 0; require("core-js/modules/es.json.stringify.js"); var _control = require("./control"); var _logger = require("../../../utilities/logger"); var _error = require("../../../utilities/error"); var _sharedStorage = require("../../../utilities/shared-storage"); class FcrAnnotationControlFactoryImpl { logger = (0, _logger.createLogger)({ prefix: 'FcrAnnotationControlFactory' }); createForSubProcess(rtmClient, hasOperationPrivilege, config) { this.logger.info(`[annotation]: create for sub process with config: ${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;