forwardMessage method
void
forwardMessage(
- NIMMessage message,
- String conversationId, {
- 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();
});
}
}