'use strict' const minBy = require('lodash/minBy') const maxBy = require('lodash/maxBy') const last = require('lodash/last') const parseTrip = (ctx, t) => { // t = raw trip const {profile, res} = ctx // pretend the trip is a leg in a journey const fakeLeg = { type: 'JNY', dep: Array.isArray(t.stopL) ? minBy(t.stopL, 'idx') || t.stopL[0] : {}, arr: Array.isArray(t.stopL) ? maxBy(t.stopL, 'idx') || last(t.stopL) : {}, jny: t, } // todo: this breaks if the trip starts on a different day // how does HAFAS do this? const today = () => profile.formatDate(profile, Date.now()) const date = t.date || today() const trip = profile.parseJourneyLeg(ctx, fakeLeg, date) trip.id = trip.tripId delete trip.tripId // todo [breaking]: delete trip.reachable if (res.planrtTS) { // todo [breaking]: remove here trip.realtimeDataUpdatedAt = parseInt(res.planrtTS) } return trip } module.exports = parseTrip