29 lines
846 B
Dart
29 lines
846 B
Dart
part of 'data_service.dart';
|
|
|
|
extension DataServiceStats on DataService {
|
|
Future<void> fetchAboutStats({bool force = false}) async {
|
|
if (_isAboutStatsLoading) return;
|
|
if (!force && _aboutStats != null) return;
|
|
_isAboutStatsLoading = true;
|
|
_notifyAsync();
|
|
try {
|
|
final json = await api.get('/stats/about');
|
|
if (json is Map<String, dynamic>) {
|
|
_aboutStats = StatsAbout.fromJson(json);
|
|
} else if (json is Map) {
|
|
_aboutStats = StatsAbout.fromJson(
|
|
json.map((key, value) => MapEntry(key.toString(), value)),
|
|
);
|
|
} else {
|
|
throw Exception('Unexpected stats response: $json');
|
|
}
|
|
} catch (e) {
|
|
debugPrint('Failed to fetch about stats: $e');
|
|
_aboutStats = null;
|
|
} finally {
|
|
_isAboutStatsLoading = false;
|
|
_notifyAsync();
|
|
}
|
|
}
|
|
}
|