refactored code to encapsulate date formatting

This commit is contained in:
2025-01-29 13:39:49 +01:00
parent 2655779fac
commit 7b7e3e9fe0
6 changed files with 85 additions and 43 deletions

View File

@@ -1,11 +1,13 @@
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:timezone/timezone.dart' as tz;
import '../model/flood_station.dart';
import '../model/reading.dart';
import 'date_utility.dart';
class Api {
Api._();
static const String _rootUrl =
'https://environment.data.gov.uk/flood-monitoring';
@@ -56,7 +58,8 @@ class Api {
static Future<List<Reading>> fetchReadingsFromStation(
String stationId) async {
List<Reading> readings = [];
final dateTime = _getCurrentUKTime().subtract(Duration(days: 1)).toUtc();
final dateTime =
DateUtility.currentUKTimeUtc.subtract(Duration(days: 1)).toUtc();
final url =
'$_rootUrl/id/stations/$stationId/readings?since=${dateTime.toIso8601String()}&_sorted';
final response = await http.get(Uri.parse(url));
@@ -68,9 +71,4 @@ class Api {
}
return readings.reversed.toList();
}
static DateTime _getCurrentUKTime() {
final london = tz.getLocation('Europe/London');
return tz.TZDateTime.now(london);
}
}