forwardMessage method

void forwardMessage(
  1. NIMMessage message,
  2. String conversationId, {
  3. String? postScript,
})

Implementation

void forwardMessage(NIMMessage message, String conversationId,
    {String? postScript}) async {
  if (await haveConnectivity()) {
    NIMMessageAIConfigParams? aiConfigParams;

    if ((await ConversationIdUtil().conversationType(conversationId)).data ==
        NIMConversationType.p2p) {
      NIMAIUser? aiAgent = AIUserManager.instance.getAIUserById(
          ChatKitUtils.getConversationTargetId(conversationId));
      if (aiAgent != null) {
        final aiStreamMode = await IMKitClient.enableAIStream;
        // AI 参数处理
        aiConfigParams = NIMMessageAIConfigParams(
            accountId: aiAgent.accountId, aiStream: aiStreamMode);
        if (ChatMessageHelper.getAIContentMsg(message)?.isNotEmpty == true) {
          NIMAIModelCallContent content = NIMAIModelCallContent(
              type: 0, msg: ChatMessageHelper.getAIContentMsg(message));
          aiConfigParams.content = content;
        }
      }
    }

    final params =
        await ChatMessageHelper.getSenderParams(message, conversationId);
    params.aiConfig = aiConfigParams;
    ChatMessageRepo.forwardMessage(message, conversationId, params: params)
        .then((value) async {
      if (value.code == ChatMessageRepo.errorInBlackList) {
        ChatMessageRepo.saveTipsMessage(
            conversationId, S.of().chatMessageSendFailedByBlackList);
      }
      if (postScript?.isNotEmpty == true) {
        //处理AI Config
        NIMMessageAIConfigParams? aiConfigParams;

        if ((await ConversationIdUtil().conversationType(conversationId))
                .data ==
            NIMConversationType.p2p) {
          NIMAIUser? aiAgent = AIUserManager.instance.getAIUserById(
              ChatKitUtils.getConversationTargetId(conversationId));
          if (aiAgent != null) {
            final aiStreamMode = await IMKitClient.enableAIStream;
            // AI 参数处理
            aiConfigParams = NIMMessageAIConfigParams(
                accountId: aiAgent.accountId, aiStream: aiStreamMode);
            NIMAIModelCallContent content =
                NIMAIModelCallContent(type: 0, msg: postScript);
            aiConfigParams.content = content;
          }
        }
        ChatMessageRepo.sendTextMessageWithMessageAck(
                conversationId: conversationId,
                text: postScript!,
                aiConfigParams: aiConfigParams)
            .then((msgSend) {
          if (msgSend.code == ChatMessageRepo.errorInBlackList) {
            ChatMessageRepo.saveTipsMessage(
                conversationId, S.of().chatMessageSendFailedByBlackList);
          }
        });
      }
      notifyListeners();
    });
  }
}