getMessageOnlineUrl method

Future<V2TimValueCallback<V2TimMessageOnlineUrl>> getMessageOnlineUrl({
  1. V2TimMessage? message,
  2. String? msgID,
})

Implementation

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

  if (message == null) {
    if (msgID == null) {
      return V2TimValueCallback<V2TimMessageOnlineUrl>(code: TIMErrCode.ERR_SDK_NOT_INITIALIZED.value, desc: "message and msgID are both empty");
    } else {
      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");
      }

      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);
}