createForwardMessage method
Implementation
Future<V2TimValueCallback<V2TimMsgCreateInfoResult>> createForwardMessage({required String msgID}) async {
V2TimValueCallback<List<V2TimMessage>> findResult = await findMessages(messageIDList: [msgID]);
if (findResult.code != TIMErrCode.ERR_SUCC.value) {
return V2TimValueCallback(code: findResult.code, desc: findResult.desc);
}
List<V2TimMessage> msgList = findResult.data!;
if (msgList.isEmpty) {
return V2TimValueCallback(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: 'message not found', data: V2TimMsgCreateInfoResult());
}
V2TimMessage message = msgList[0];
if (message.status != MessageStatus.V2TIM_MSG_STATUS_SEND_SUCC) {
return V2TimValueCallback(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: 'message status must be successful', data: V2TimMsgCreateInfoResult());
}
for (var elem in message.elemList) {
if (elem is V2TIMElem && elem.elemType == MessageElemType.V2TIM_ELEM_TYPE_GROUP_TIPS) {
return V2TimValueCallback(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: 'group tips message is not support', data: V2TimMsgCreateInfoResult());
}
}
V2TimMessage v2timMessage = V2TimMessage(elemType: message.elemType);
v2timMessage.elemList = message.elemList;
v2timMessage.isForwardMessage = true;
String tempID = _createMessageTempID();
v2timMessage.id = tempID;
messageIDMap.addAll({tempID: v2timMessage});
V2TimMsgCreateInfoResult result = V2TimMsgCreateInfoResult(id: tempID, messageInfo: v2timMessage);
return V2TimValueCallback<V2TimMsgCreateInfoResult>.fromObject(result);
}