createMergedMessage static method

Future<NIMResult<NIMMessage>> createMergedMessage(
  1. List<NIMMessage> messages
)

创建合并消息

Implementation

static Future<NIMResult<NIMMessage>> createMergedMessage(
  List<NIMMessage> messages,
) async {
  if (messages.isEmpty) {
    return NIMResult.failure(message: 'message list is empty');
  }
  final mergedMessage = await mergeMessage(messages);
  var title = messages.first.text;
  if (ChatKitClient.instance.mergedMessageTitle != null) {
    title = await ChatKitClient.instance.mergedMessageTitle!.call(messages);
  }
  if (mergedMessage.isSuccess && mergedMessage.data != null) {
    final customMsgBuilder = await MessageCreator.createCustomMessage(
      title ?? '',
      jsonEncode(mergedMessage.data!),
    );
    if (customMsgBuilder.isSuccess && customMsgBuilder.data != null) {
      customMsgBuilder.data!.pushConfig = NIMMessagePushConfig(
        pushContent: ChatMessageHelper.getMessageBrief(
          customMsgBuilder.data!,
        ),
      );
      return NIMResult.success(data: customMsgBuilder.data!);
    } else {
      return NIMResult.failure(message: customMsgBuilder.errorDetails);
    }
  } else {
    return NIMResult.failure(message: mergedMessage.errorDetails);
  }
}