assignParticipantToBreakoutRoom function

Future<HeadlessActionResult> assignParticipantToBreakoutRoom(
  1. MediasfuParameters parameters, {
  2. required String name,
  3. int? room,
  4. 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);
}