fetchReactionList method Null safety

Future<Map<String, List<ChatMessageReaction>>> fetchReactionList(
  1. {required List<String> messageIds,
  2. required ChatType chatType,
  3. String? groupId}
)

Gets the list of Reactions.

Param messageIds The message IDs.

Param chatType The chat type. Only one-to-one chat ({@link ChatMessage.ChatType#Chat} and group chat ({@link ChatMessage.ChatType#GroupChat}) are allowed.

Param groupId which is invalid only when the chat type is group chat.

Return The Reaction list under the specified message ID(The UserList of ChatMessageReaction is the summary data, which only contains the information of the first three users).

Throws A description of the exception. See {@link ChatError}.

Implementation

Future<Map<String, List<ChatMessageReaction>>> fetchReactionList({
  required List<String> messageIds,
  required ChatType chatType,
  String? groupId,
}) async {
  Map req = {
    "msgIds": messageIds,
    "chatType": chatTypeToInt(chatType),
  };
  req.setValueWithOutNull("groupId", groupId);
  Map result = await ChatMethodChannel.ChatManager.invokeMethod(
    ChatMethodKeys.fetchReactionList,
    req,
  );

  try {
    ChatError.hasErrorFromResult(result);
    Map<String, List<ChatMessageReaction>> ret = {};
    for (var info in result[ChatMethodKeys.fetchReactionList].entries) {
      List<ChatMessageReaction> reactions = [];
      for (var item in info.value) {
        reactions.add(ChatMessageReaction.fromJson(item));
      }
      ret[info.key] = reactions;
    }
    return ret;
  } on ChatError catch (e) {
    throw e;
  }
}