db-vendo-client/parse/when.js
Jannis R 29a2cf36e9
add planned(Arrival|Departure|When), scheduled* -> planned*/prognosed* 💥
when not cancelled:
{when, delay} -> {when, plannedWhen, delay}
{arrival, arrivalDelay} -> {arrival, plannedArrival, arrivalDelay}
{departure, departureDelay} -> {departure, plannedDeparture, departureDelay}

when cancelled:
{when: null, delay: null, scheduledWhen} -> {when: null, plannedWhen, prognosedWhen, delay}
{arrival: null, arrivalDelay: null, scheduledArrival, formerArrivalDelay} -> {arrival: null, plannedArrival, arrivalDelay, prognosedArrival}
{departure: null, departureDelay: null, scheduledDeparture, formerDepartureDelay} -> {departure: null, plannedDeparture, departureDelay, prognosedDeparture}
2020-01-05 17:52:17 +01:00

31 lines
712 B
JavaScript

'use strict'
const parseWhen = (profile, date, timeS, timeR, tzOffset, cncl = false) => {
const parse = profile.parseDateTime
let planned = timeS ? parse(profile, date, timeS, tzOffset, false) : null
let prognosed = timeR ? parse(profile, date, timeR, tzOffset, false) : null
let delay = null
if (planned && prognosed) {
const tPlanned = parse(profile, date, timeS, tzOffset, true)
const tPrognosed = parse(profile, date, timeR, tzOffset, true)
delay = Math.round((tPrognosed - tPlanned) / 1000)
}
if (cncl) {
return {
when: null,
plannedWhen: planned,
prognosedWhen: when,
delay
}
}
return {
when: prognosed,
plannedWhen: planned,
delay
}
}
module.exports = parseWhen