mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
HAFAS returns notes for journey legs, stopovers and departures. There are two kinds of notes: "remarks" (in `remL`) and HAFAS Information Manager (HIM) notes (in `himL`). The former describe the regular operating situation, e.g. "bicycles allows", whereas the latter describe cancellations, construction work, etc. The planned naming scheme for hafas-client: - hints: notes from `remL` for regular operation - warnings: notes from `himL` for cancellations, construction, etc - remarks: both "notes" and "warnings" This commit prepares the new naming scheme by renaming the existing parsing logic of `remL` to "hints". Follow-up commits will add `parseWarning`.
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
'use strict'
|
|
|
|
// todo: arrivalDelay, departureDelay or only delay ?
|
|
// todo: arrivalPlatform, departurePlatform
|
|
const createParseStopover = (profile, stations, lines, hints, date) => {
|
|
const parseStopover = (st) => {
|
|
const res = {
|
|
station: stations[parseInt(st.locX)] || null,
|
|
arrival: null,
|
|
departure: null
|
|
}
|
|
if (st.aTimeR || st.aTimeS) {
|
|
const arr = profile.parseDateTime(profile, date, st.aTimeR || st.aTimeS)
|
|
res.arrival = arr.toISO()
|
|
}
|
|
if (st.dTimeR || st.dTimeS) {
|
|
const dep = profile.parseDateTime(profile, date, st.dTimeR || st.dTimeS)
|
|
res.departure = dep.toISO()
|
|
}
|
|
|
|
// mark stations the train passes without stopping
|
|
if(st.dInS === false && st.aOutS === false) res.passBy = true
|
|
|
|
// todo: DRY with parseDeparture
|
|
// todo: DRY with parseJourneyLeg
|
|
if (st.aCncl || st.dCncl) {
|
|
res.cancelled = true
|
|
Object.defineProperty(res, 'canceled', {value: true})
|
|
if (st.aCncl) {
|
|
res.arrival = res.arrivalDelay = null
|
|
const arr = profile.parseDateTime(profile, date, st.aTimeS)
|
|
res.formerScheduledArrival = arr.toISO()
|
|
}
|
|
if (st.dCncl) {
|
|
res.departure = res.departureDelay = null
|
|
const arr = profile.parseDateTime(profile, date, st.dTimeS)
|
|
res.formerScheduledDeparture = arr.toISO()
|
|
}
|
|
}
|
|
|
|
return res
|
|
}
|
|
|
|
return parseStopover
|
|
}
|
|
|
|
module.exports = createParseStopover
|