bigbluebutton-Github/bigbluebutton-html5/imports/api/voice-users/server/handlers/leftVoiceUser.js

33 lines
940 B
JavaScript
Raw Normal View History

2017-08-01 03:36:41 +08:00
import { check } from 'meteor/check';
2017-12-08 04:50:50 +08:00
import removeVoiceUser from '/imports/api/voice-users/server/modifiers/removeVoiceUser';
import removeUser from '/imports/api/users/server/modifiers/removeUser';
import Users from '/imports/api/users';
2017-08-01 03:36:41 +08:00
export default async function handleVoiceUpdate({ body }, meetingId) {
2017-08-01 03:36:41 +08:00
const voiceUser = body;
check(meetingId, String);
2017-12-08 04:50:50 +08:00
check(voiceUser, {
voiceConf: String,
intId: String,
voiceUserId: String,
});
2017-08-01 03:36:41 +08:00
const {
intId,
voiceUserId,
} = voiceUser;
const isDialInUser = async (userId, meetingID) => {
const user = await Users.findOneAsync({ meetingId: meetingID, userId, clientType: 'dial-in-user' });
return !!user;
};
// if the user is dial-in, leaving voice also means leaving userlist
if (await isDialInUser(voiceUserId, meetingId)) removeUser(voiceUser, meetingId);
2017-12-08 04:50:50 +08:00
const result = await removeVoiceUser(meetingId, voiceUser);
return result;
2017-08-01 03:36:41 +08:00
}