LCOV - code coverage report
Current view: top level - lib/msc_extensions/msc_3381_polls - poll_room_extension.dart (source / functions) Hit Total Coverage
Test: merged.info Lines: 9 10 90.0 %
Date: 2025-01-06 12:44:40 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:matrix/matrix.dart';
       2             : import 'package:matrix/msc_extensions/msc_3381_polls/models/poll_event_content.dart';
       3             : 
       4             : extension PollRoomExtension on Room {
       5             :   static const String mTextJsonKey = 'org.matrix.msc1767.text';
       6             :   static const String startType = 'org.matrix.msc3381.poll.start';
       7             : 
       8           2 :   Future<String?> startPoll({
       9             :     required String question,
      10             :     required List<PollAnswer> answers,
      11             :     String? body,
      12             :     PollKind kind = PollKind.undisclosed,
      13             :     int maxSelections = 1,
      14             :     String? txid,
      15             :   }) async {
      16           4 :     if (answers.length > 20) {
      17           0 :       throw Exception('Client must not set more than 20 answers in a poll');
      18             :     }
      19             : 
      20             :     if (body == null) {
      21             :       body = question;
      22           6 :       for (var i = 0; i < answers.length; i++) {
      23           6 :         body = '$body\n$i. ${answers[i].mText}';
      24             :       }
      25             :     }
      26             : 
      27           2 :     final newPollEvent = PollEventContent(
      28             :       mText: body!,
      29           2 :       pollStartContent: PollStartContent(
      30             :         kind: kind,
      31             :         maxSelections: maxSelections,
      32           2 :         question: PollQuestion(mText: question),
      33             :         answers: answers,
      34             :       ),
      35             :     );
      36             : 
      37           2 :     return sendEvent(
      38           2 :       newPollEvent.toJson(),
      39             :       type: startType,
      40             :       txid: txid,
      41             :     );
      42             :   }
      43             : }

Generated by: LCOV version 1.14