getMessageOnlineUrl method

Future<V2TimValueCallback<V2TimMessageOnlineUrl>> getMessageOnlineUrl(
  1. {required String msgID}
)

Implementation

Future<V2TimValueCallback<V2TimMessageOnlineUrl>> getMessageOnlineUrl({
  required String msgID,
}) async {
  if (!TIMManager.instance.isInitSDK()) {
    return V2TimValueCallback<V2TimMessageOnlineUrl>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "sdk not init");
  }

  V2TimValueCallback<List<V2TimMessage>> findResult = await findMessages(messageIDList: [msgID]);
  if (findResult.code != TIMErrCode.ERR_SUCC.value) {
    print("deleteMessageExtensions, find message failed");
    return V2TimValueCallback<V2TimMessageOnlineUrl>(code: findResult.code, desc: findResult.desc);
  }

  List<V2TimMessage> msgList = findResult.data!;
  if (msgList.isEmpty) {
    print("deleteMessageExtensions, message not found");
    return V2TimValueCallback<V2TimMessageOnlineUrl>(code: TIMErrCode.ERR_INVALID_PARAMETERS.value, desc: "message not found");
  }

  V2TimMessage message = msgList[0];
  V2TimMessageOnlineUrl result = V2TimMessageOnlineUrl();
  switch (message.elemType) {
    case MessageElemType.V2TIM_ELEM_TYPE_IMAGE:
      result.imageElem = message.imageElem;
      break;
    case MessageElemType.V2TIM_ELEM_TYPE_VIDEO:
      result.videoElem = message.videoElem;
      break;
    case MessageElemType.V2TIM_ELEM_TYPE_SOUND:
      result.soundElem = message.soundElem;
      break;
    case MessageElemType.V2TIM_ELEM_TYPE_FILE:
      result.fileElem = message.fileElem;
      break;
    default:
      break;
  }

  return V2TimValueCallback<V2TimMessageOnlineUrl>.fromObject(result);
}