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