fcr-core
Version:
Core APIs for building online scenes
48 lines (47 loc) • 2.13 kB
JavaScript
;
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;