UNPKG

fcr-core

Version:

Core APIs for building online scenes

48 lines (47 loc) 2.13 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"); var _imports = require("../../../imports"); class FcrAnnotationControlFactoryImpl { logger = (0, _logger.createLogger)({ prefix: 'FcrAnnotationControlFactory' }); createForSubProcess(rtmClient, config, annotationSceneConfig) { this.logger.info(`create for sub process with config: ${JSON.stringify(config)}`); return new _control.FcrStandaloneAnnotationControlImpl(rtmClient, config, () => { const forgeInitConfig = (0, _sharedStorage.getAnnotationBoardOptions)(); if (!forgeInitConfig) { throw (0, _error.generateFcrCoreClientError)(_imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, _imports.DetailErrorCode.UNDEFINED_ERROR, `whiteboard init config is not exist`); } return Promise.resolve(forgeInitConfig); }, annotationSceneConfig); } createForMainProcess(rtmClient, config, annotationSceneConfig, api) { const boardPerformance = annotationSceneConfig.getBoardPerformance(); const control = new _control.FcrAnnotationControlImpl(rtmClient, config, this._createForgeInitConfigFetcher(api, config.roomId, config.userId, boardPerformance), annotationSceneConfig, api); return control; } _createForgeInitConfigFetcher(api, roomId, userId, boardPerformance) { const getObjectInitConfig = async (roomId, userId) => { return await (0, _error.handleRequestError)(() => api.getAnnotationToken({ roomId, userId }), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'get annotation token failed'); }; return async () => { const response = await getObjectInitConfig(roomId, userId); return { ...response.data, boardPerformance }; }; } } exports.FcrAnnotationControlFactoryImpl = FcrAnnotationControlFactoryImpl;