bigbluebutton-Github/bigbluebutton-html5/imports/api/presentation-pods/server/handlers/syncGetPresentationPods.js
2018-04-09 12:48:37 -07:00

33 lines
1023 B
JavaScript

import { check } from 'meteor/check';
import PresentationPods from '/imports/api/presentation-pods';
import removePresentationPod from '../modifiers/removePresentationPod';
import addPresentationPod from '../modifiers/addPresentationPod';
export default function handleSyncGetPresentationPods({ body }, meetingId) {
check(body, Object);
check(meetingId, String);
const { pods } = body;
check(pods, Array);
const presentationPodIds = pods.map(pod => pod.id);
const presentationPodsToRemove = PresentationPods.find({
meetingId,
podId: { $nin: presentationPodIds },
}).fetch();
presentationPodsToRemove.forEach(p => removePresentationPod(meetingId, p.podId));
pods.forEach((pod) => {
// 'podId' and 'currentPresenterId' for some reason called 'id' and 'currentPresenter'
// in this message
const {
id: podId,
currentPresenter: currentPresenterId,
presentations,
} = pod;
addPresentationPod(meetingId, { podId, currentPresenterId }, presentations);
});
}