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