createRoomPoll function

Future<HeadlessActionResult> createRoomPoll(
  1. MediasfuParameters parameters, {
  2. required String question,
  3. required List<String> options,
  4. String type = 'custom',
})

Implementation

Future<HeadlessActionResult> createRoomPoll(
  MediasfuParameters parameters, {
  required String question,
  required List<String> options,
  String type = 'custom',
}) async {
  if (question.trim().isEmpty) {
    return const HeadlessActionResult.failure('The poll needs a question.');
  }
  if (options.length < 2) {
    return const HeadlessActionResult.failure(
        'The poll needs at least two options.');
  }
  try {
    final response = await _emitAck(parameters, 'createPoll', {
      'roomName': parameters.roomName,
      'poll': {'question': question, 'options': options, 'type': type},
    });
    return response['success'] == true
        ? const HeadlessActionResult.success()
        : HeadlessActionResult.failure(
            response['reason']?.toString() ?? 'The poll could not be created.');
  } catch (error) {
    return HeadlessActionResult.failure(
        'The poll could not be created: $error');
  }
}