bigbluebutton-Github/bigbluebutton-html5/imports/api/meetings/server/modifiers/meetingHasEnded.js
2023-05-26 10:33:38 -03:00

78 lines
4.1 KiB
JavaScript
Executable File

import Meetings from '/imports/api/meetings';
import Logger from '/imports/startup/server/logger';
import { removeAnnotationsStreamer } from '/imports/api/annotations/server/streamer';
import { removeCursorStreamer } from '/imports/api/cursor/server/streamer';
import { removeExternalVideoStreamer } from '/imports/api/external-videos/server/streamer';
import clearUsers from '/imports/api/users/server/modifiers/clearUsers';
import clearUsersSettings from '/imports/api/users-settings/server/modifiers/clearUsersSettings';
import clearGroupChat from '/imports/api/group-chat/server/modifiers/clearGroupChat';
import clearGuestUsers from '/imports/api/guest-users/server/modifiers/clearGuestUsers';
import clearBreakouts from '/imports/api/breakouts/server/modifiers/clearBreakouts';
import clearAnnotations from '/imports/api/annotations/server/modifiers/clearAnnotations';
import clearSlides from '/imports/api/slides/server/modifiers/clearSlides';
import clearPolls from '/imports/api/polls/server/modifiers/clearPolls';
import clearCaptions from '/imports/api/captions/server/modifiers/clearCaptions';
import clearPads from '/imports/api/pads/server/modifiers/clearPads';
import clearPresentationPods from '/imports/api/presentation-pods/server/modifiers/clearPresentationPods';
import clearVoiceUsers from '/imports/api/voice-users/server/modifiers/clearVoiceUsers';
import clearUserInfo from '/imports/api/users-infos/server/modifiers/clearUserInfo';
import clearConnectionStatus from '/imports/api/connection-status/server/modifiers/clearConnectionStatus';
import clearScreenshare from '/imports/api/screenshare/server/modifiers/clearScreenshare';
import clearTimer from '/imports/api/timer/server/modifiers/clearTimer';
import clearAudioCaptions from '/imports/api/audio-captions/server/modifiers/clearAudioCaptions';
import clearMeetingTimeRemaining from '/imports/api/meetings/server/modifiers/clearMeetingTimeRemaining';
import clearLocalSettings from '/imports/api/local-settings/server/modifiers/clearLocalSettings';
import clearRecordMeeting from './clearRecordMeeting';
import clearExternalVideoMeeting from './clearExternalVideoMeeting';
import clearVoiceCallStates from '/imports/api/voice-call-states/server/modifiers/clearVoiceCallStates';
import clearVideoStreams from '/imports/api/video-streams/server/modifiers/clearVideoStreams';
import clearAuthTokenValidation from '/imports/api/auth-token-validation/server/modifiers/clearAuthTokenValidation';
import clearUsersPersistentData from '/imports/api/users-persistent-data/server/modifiers/clearUsersPersistentData';
import clearReactions from '/imports/api/user-reaction/server/modifiers/clearReactions';
import clearWhiteboardMultiUser from '/imports/api/whiteboard-multi-user/server/modifiers/clearWhiteboardMultiUser';
import Metrics from '/imports/startup/server/metrics';
export default async function meetingHasEnded(meetingId) {
if (!process.env.BBB_HTML5_ROLE || process.env.BBB_HTML5_ROLE === 'frontend') {
removeAnnotationsStreamer(meetingId);
removeCursorStreamer(meetingId);
removeExternalVideoStreamer(meetingId);
}
await Meetings.removeAsync({ meetingId });
await Promise.all([
clearCaptions(meetingId),
clearPads(meetingId),
clearGroupChat(meetingId),
clearGuestUsers(meetingId),
clearPresentationPods(meetingId),
clearBreakouts(meetingId),
clearPolls(meetingId),
clearAnnotations(meetingId),
clearSlides(meetingId),
clearUsers(meetingId),
clearUsersSettings(meetingId),
clearVoiceUsers(meetingId),
clearUserInfo(meetingId),
clearConnectionStatus(meetingId),
clearTimer(meetingId),
clearAudioCaptions(meetingId),
clearLocalSettings(meetingId),
clearMeetingTimeRemaining(meetingId),
clearRecordMeeting(meetingId),
clearExternalVideoMeeting(meetingId),
clearVoiceCallStates(meetingId),
clearVideoStreams(meetingId),
clearAuthTokenValidation(meetingId),
clearWhiteboardMultiUser(meetingId),
clearScreenshare(meetingId),
clearUsersPersistentData(meetingId),
clearReactions(meetingId),
]);
await Metrics.removeMeeting(meetingId);
return Logger.info(`Cleared Meetings with id ${meetingId}`);
}