resendFileMessage method

FileMessage resendFileMessage(
  1. FileMessage message, {
  2. File? file,
  3. FileMessageHandler? handler,
  4. ProgressHandler? progressHandler,
})

Resends a file with given file information. fileMessage Failed fileMessage. file File to resend. If there is a fileUrl or a fileBytes in fileMessage, this will be ignored.

Implementation

FileMessage resendFileMessage(
  FileMessage message, {
  File? file,
  FileMessageHandler? handler,
  ProgressHandler? progressHandler,
}) {
  sbLog.i(StackTrace.current, 'message.requestId: ${message.requestId}');
  checkUnsupportedAction();

  if (message.sendingStatus != SendingStatus.failed) {
    throw InvalidParameterException();
  }
  if (message.channelUrl != channelUrl) {
    throw InvalidParameterException();
  }
  if (!message.isResendable()) {
    if (message.errorCode == SendbirdError.fileSizeLimitExceeded) {
      throw FileSizeLimitExceededException();
    } else {
      throw InvalidParameterException();
    }
  }

  if (message.messageCreateParams != null) {
    if (message.messageCreateParams?.fileInfo.fileUrl == null &&
        message.messageCreateParams?.fileInfo.fileBytes == null &&
        file != null) {
      message.messageCreateParams?.fileInfo.file = file;
    }
  }

  final params = message.messageCreateParams ??
      FileMessageCreateParams.withMessage(message);
  return sendFileMessage(
    params,
    progressHandler: progressHandler,
    handler: handler,
    resendMessageId: message.messageId,
  );
}