convertTripToTimeline static method

List<TimelineModel> convertTripToTimeline(
  1. BookingDetails history,
  2. List<Flights> flights,
  3. bool isDeparture
)

Implementation

static List<TimelineModel> convertTripToTimeline(BookingDetails history, List<options.Flights> flights, bool isDeparture) {
  final tripFlights = flights.where((flight) => flight.flightType == (isDeparture ? 'departure': 'return')).toList();
  if (tripFlights.isEmpty) {
    return [];
  }

  final numFlights = tripFlights.length;
  final timeline = <TimelineModel>[];
  for (int i = 0; i < numFlights; i++) {
    timeline.add(
      TimelineModel(
        departureDate: tripFlights[i].departureDate ?? '',
        departureTime: tripFlights[i].departureTime ?? '',
        departureAirport: tripFlights[i].fromAirport?.first.display1 ?? '',
        arrivalDate: tripFlights[i].arrivalDate ?? '',
        arrivalTime: tripFlights[i].arrivalTime ?? '',
        arrivalAirport: tripFlights[i].toAirport?.first.display1 ?? '',
        travelTime: convertMinutesIntoHourTime(int.tryParse(tripFlights[i].travelTime ?? '') ?? 0),
        layoverAirport: i == numFlights - 1 ? null : tripFlights[i + 1].fromAirport?.first.name ?? '',
        layoverDuration: i == numFlights - 1 ? null : convertMinutesIntoHourTime(tripFlights[i + 1].layoverDuration ?? 0),
      ),
    );
  }
  return timeline;
}