retryMessage method

Future retryMessage(
  1. Message message
)

Implementation

Future retryMessage(Message message) async {
  final entry = _failedMessageEntries[message.id];
  if (entry == null) {
    _dispatchResultController.add(
      MessageDispatchResult(
        message: message,
        isSuccess: false,
        exception: Exception("Failed to dispatch message"),
      ),
    );
    return;
  }
  final failedGroup = entry.messageGroup;

  if (failedGroup.messages.isEmpty) {
    _dispatchResultController.add(
      MessageDispatchResult(
        message: message,
        isSuccess: false,
        exception: Exception("Failed to dispatch message"),
      ),
    );
    return;
  }
  removeMessageFromGroup(failedGroup, message);

  await dispatchMessage(message, onDispatch: entry.onDispatch).then((result) {
    if (result.isSuccess) {
      _failedMessageEntries.remove(message.id);
    }
  });
}