TerminusTrain.fromJson constructor

TerminusTrain.fromJson(
  1. Map<String, dynamic> json
)

Creates a TerminusTrain from JSON data.

Implementation

factory TerminusTrain.fromJson(Map<String, dynamic> json) {
  final String timeStr = json[ApiFields.time] ?? '';

  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 TerminusTrain(
    time: time,
    destination: json[ApiFields.destinationStation],
  );
}