DayTimings.fromJson constructor
Creates a new DayTimings object from JSON data.
Implementation
factory DayTimings.fromJson(Map<String, dynamic> json) {
final String timeStr = json[ApiFields.openingTime] ?? '';
late final Time time;
if (timeStr.isEmpty) {
time = emptyTime;
} else {
if (!RegExp(r'\d{2}:\d{2}').hasMatch(timeStr)) {
time = emptyTime;
} else {
final String hourStr = timeStr.substring(0, 2);
final String minuteStr = timeStr.substring(3);
final int hour = int.parse(hourStr);
final int minute = int.parse(minuteStr);
time = Time(hour, minute);
}
}
return DayTimings(
openingTime: time,
firstTrains: ((json[ApiFields.firstTrains] as List?) ?? [])
.map((stop) => TerminusTrain.fromJson(stop))
.toList(),
lastTrains: ((json[ApiFields.lastTrains] as List?) ?? [])
.map((stop) => TerminusTrain.fromJson(stop))
.toList(),
);
}