assignParticipantToBreakoutRoom function
Future<HeadlessActionResult>
assignParticipantToBreakoutRoom(
- MediasfuParameters parameters, {
- required String name,
- int? room,
- String newParticipantAction = 'autoAssignNewRoom',
Implementation
Future<HeadlessActionResult> assignParticipantToBreakoutRoom(
MediasfuParameters parameters, {
required String name,
int? room,
String newParticipantAction = 'autoAssignNewRoom',
}) {
if (name.isEmpty) {
return Future.value(
const HeadlessActionResult.failure('A participant name is required.'));
}
if (room != null && room < 0) {
return Future.value(const HeadlessActionResult.failure(
'The destination room must be a room index.'));
}
final next = parameters.breakoutRooms
.map((entry) =>
entry.where((person) => person.name != name).toList(growable: true))
.toList(growable: true);
if (room != null) {
while (next.length <= room) {
next.add(<BreakoutParticipant>[]);
}
next[room].add(BreakoutParticipant(name: name, breakRoom: room));
}
return setBreakoutRooms(parameters, next,
newParticipantAction: newParticipantAction);
}