33 lines
818 B
Dart
33 lines
818 B
Dart
import 'dart:convert';
|
|
|
|
import '../../connect_api.dart';
|
|
import '../rmv_models.dart';
|
|
import '_query_format.dart';
|
|
|
|
class GetArrivals extends ConnectApi<List<Arrival>> {
|
|
final String stopId;
|
|
final DateTime? when;
|
|
final int durationMinutes;
|
|
final int maxJourneys;
|
|
|
|
GetArrivals({
|
|
required this.stopId,
|
|
this.when,
|
|
this.durationMinutes = 60,
|
|
this.maxJourneys = -1,
|
|
}) : super('rmv/arrivals');
|
|
|
|
@override
|
|
Map<String, String>? get queryParameters => {
|
|
'stopId': stopId,
|
|
if (when != null) 'when': formatLocalDateTime(when!),
|
|
'duration': durationMinutes.toString(),
|
|
'max': maxJourneys.toString(),
|
|
};
|
|
|
|
@override
|
|
List<Arrival> assemble(String raw) => (jsonDecode(raw) as List)
|
|
.map((e) => Arrival.fromJson(e as Map<String, dynamic>))
|
|
.toList(growable: false);
|
|
}
|