getStatistics method
Gets statistics about flush operations
Implementation
Map<String, dynamic> getStatistics() {
if (_logs.isEmpty) {
return {
'total': 0,
'successful': 0,
'failed': 0,
'skipped': 0,
'success_rate': 0.0,
'by_trigger': <String, int>{},
};
}
final total = _logs.length;
final successful = _logs.where((log) => log.successful && log.errorMessage?.contains('Skipped') != true).length;
final skipped = _logs.where((log) => log.errorMessage?.contains('Skipped') == true).length;
final failed = total - successful - skipped;
final successRate = total > 0 ? (successful / total) * 100 : 0.0;
final byTrigger = <String, int>{};
for (final log in _logs) {
byTrigger[log.trigger] = (byTrigger[log.trigger] ?? 0) + 1;
}
return {
'total': total,
'successful': successful,
'failed': failed,
'skipped': skipped,
'success_rate': successRate,
'by_trigger': byTrigger,
};
}