61 lines
1.9 KiB
JavaScript
Executable File
61 lines
1.9 KiB
JavaScript
Executable File
import Auth from '/imports/ui/services/auth';
|
|
import Breakouts from '/imports/api/breakouts';
|
|
import { makeCall } from '/imports/ui/services/api';
|
|
import Meetings from '/imports/api/meetings';
|
|
import fp from 'lodash/fp';
|
|
|
|
const getBreakoutByUserId = userId => Breakouts.find({ 'users.userId': userId }).fetch();
|
|
|
|
const getBreakoutByUser = user => Breakouts.findOne({ users: user });
|
|
|
|
const getUsersFromBreakouts = breakoutsArray => breakoutsArray
|
|
.map(breakout => breakout.users)
|
|
.reduce((acc, usersArray) => [...acc, usersArray], []);
|
|
|
|
const filterUserURLs = userId => breakoutUsersArray => breakoutUsersArray
|
|
.filter(user => user.userId === userId);
|
|
|
|
const getLastURLInserted = breakoutURLArray => breakoutURLArray
|
|
.sort((a, b) => a.insertedTime - b.insertedTime).pop();
|
|
|
|
const getBreakoutUserByUserId = userId => fp.pipe(
|
|
getBreakoutByUserId,
|
|
getUsersFromBreakouts,
|
|
filterUserURLs(userId),
|
|
getLastURLInserted,
|
|
)(userId);
|
|
|
|
const getBreakouts = () => Breakouts.find({}, { sort: { sequence: 1 } }).fetch();
|
|
|
|
const processOutsideToggleRecording = (e) => {
|
|
switch (e.data) {
|
|
case 'c_record': {
|
|
makeCall('toggleRecording');
|
|
break;
|
|
}
|
|
case 'c_recording_status': {
|
|
const recordingState = Meetings.findOne({ meetingId: Auth.meetingID }).recordProp.recording;
|
|
const recordingMessage = recordingState ? 'recordingStarted' : 'recordingStopped';
|
|
this.window.parent.postMessage({ response: recordingMessage }, '*');
|
|
break;
|
|
}
|
|
default: {
|
|
// console.log(e.data);
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
const connectRecordingObserver = () => {
|
|
// notify on load complete
|
|
this.window.parent.postMessage({ response: 'readyToConnect' }, '*');
|
|
};
|
|
|
|
export default {
|
|
connectRecordingObserver: () => connectRecordingObserver(),
|
|
processOutsideToggleRecording: arg => processOutsideToggleRecording(arg),
|
|
getBreakoutUserByUserId,
|
|
getBreakoutByUser,
|
|
getBreakouts,
|
|
};
|