bigbluebutton-Github/bigbluebutton-html5/imports/api/captions/server/methods/editCaptions.js

48 lines
1.1 KiB
JavaScript
Raw Normal View History

import RedisPubSub from '/imports/startup/server/redis';
import Captions from '/imports/api/captions';
import Logger from '/imports/startup/server/logger';
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
2019-05-29 22:31:27 +08:00
const getIndex = (data, length) => length - data.length;
export default function editCaptions(padId, data) {
const REDIS_CONFIG = Meteor.settings.private.redis;
const CHANNEL = REDIS_CONFIG.channels.toAkkaApps;
const EVENT_NAME = 'EditCaptionHistoryPubMsg';
check(padId, String);
check(data, String);
2019-05-23 22:51:01 +08:00
const pad = Captions.findOne({ padId });
if (!pad) {
Logger.error(`Editing captions history: ${padId}`);
return;
}
const {
meetingId,
ownerId,
locale,
length,
} = pad;
check(meetingId, String);
check(ownerId, String);
check(locale, { locale: String, name: String });
check(length, Number);
const index = getIndex(data, length);
const payload = {
startIndex: index,
localeCode: locale.locale,
locale: locale.name,
endIndex: index,
text: data,
};
return RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, ownerId, payload);
}