loadRelayDeliveryTargets method
Future<List<RelayDeliveryTarget> >
loadRelayDeliveryTargets({
- String? eventId,
- String? relayUrl,
- RelayDeliveryState? state,
- bool excludeAcked = false,
- int? limit,
override
Implementation
@override
Future<List<RelayDeliveryTarget>> loadRelayDeliveryTargets({
String? eventId,
String? relayUrl,
RelayDeliveryState? state,
bool excludeAcked = false,
int? limit,
}) async {
var records =
relayDeliveryTargets.values.where((target) {
if (eventId != null && target.eventId != eventId) {
return false;
}
if (relayUrl != null && target.relayUrl != relayUrl) {
return false;
}
if (state != null && target.state != state) {
return false;
}
if (excludeAcked && target.state == RelayDeliveryState.acked) {
return false;
}
return true;
}).toList()..sort((a, b) {
final retryA = a.nextRetryAt ?? 0;
final retryB = b.nextRetryAt ?? 0;
if (retryA != retryB) {
return retryA.compareTo(retryB);
}
return a.key.compareTo(b.key);
});
if (limit != null && limit < records.length) {
records = records.take(limit).toList();
}
return records;
}