From 431574b7569754985e17dcaf66ccda67cb9408e3 Mon Sep 17 00:00:00 2001 From: Jannis R Date: Wed, 16 May 2018 21:07:43 +0200 Subject: [PATCH] parseJourneyLeg, parseMovement: use parsePolyline :boom:, refactor --- index.js | 15 +++------------ parse/journey-leg.js | 5 +++-- parse/movement.js | 13 ++++++++----- 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/index.js b/index.js index c533168f..d2410c70 100644 --- a/index.js +++ b/index.js @@ -149,10 +149,7 @@ const createClient = (profile, request = _request) => { .then((d) => { if (!Array.isArray(d.outConL)) return [] - let polylines = [] - if (opt.polylines && Array.isArray(d.common.polyL)) { - polylines = d.common.polyL - } + const polylines = opt.polyline && d.common.polyL || [] const parse = profile.parseJourney(profile, d.locations, d.lines, d.remarks, polylines) if (!journeys.earlierRef) journeys.earlierRef = d.outCtxScrB @@ -298,10 +295,7 @@ const createClient = (profile, request = _request) => { } }) .then((d) => { - let polylines = [] - if (opt.polyline && Array.isArray(d.common.polyL)) { - polylines = d.common.polyL - } + const polylines = opt.polyline && d.common.polyL || [] const parse = profile.parseJourneyLeg(profile, d.locations, d.lines, d.remarks, polylines) const leg = { // pretend the leg is contained in a journey @@ -354,10 +348,7 @@ const createClient = (profile, request = _request) => { .then((d) => { if (!Array.isArray(d.jnyL)) return [] - let polylines = [] - if (opt.polylines && d.common && Array.isArray(d.common.polyL)) { - polylines = d.common.polyL - } + const polylines = opt.polyline && d.common.polyL || [] const parse = profile.parseMovement(profile, d.locations, d.lines, d.remarks, polylines) return d.jnyL.map(parse) }) diff --git a/parse/journey-leg.js b/parse/journey-leg.js index fd634a9f..bbc3f9da 100644 --- a/parse/journey-leg.js +++ b/parse/journey-leg.js @@ -36,9 +36,10 @@ const createParseJourneyLeg = (profile, stations, lines, remarks, polylines) => if (pt.jny && pt.jny.polyG) { let p = pt.jny.polyG.polyXL - p = p && polylines[p[0]] + p = Array.isArray(p) && polylines[p[0]] // todo: there can be >1 polyline - res.polyline = p && p.crdEncYX || null + const parse = profile.parsePolyline(stations) + res.polyline = p && parse(p) || null } if (pt.type === 'WALK') { diff --git a/parse/movement.js b/parse/movement.js index 7999eb52..8a3ab401 100644 --- a/parse/movement.js +++ b/parse/movement.js @@ -35,12 +35,15 @@ const createParseMovement = (profile, locations, lines, remarks, polylines = []) } } - if (m.ani.poly && m.ani.poly.crdEncYX) { - res.polyline = m.ani.poly.crdEncYX - } else if (m.ani.polyG && Array.isArray(m.ani.polyG.polyXL)) { - let p = m.ani.polyG.polyXL[0] + if (m.ani.poly) { + const parse = profile.parsePolyline(locations) + res.polyline = parse(m.ani.poly) + } else if (m.ani.polyG) { + let p = m.ani.polyG.polyXL + p = Array.isArray(p) && polylines[p[0]] // todo: there can be >1 polyline - res.polyline = polylines[p] && polylines[p].crdEncYX || null + const parse = profile.parsePolyline(locations) + res.polyline = p && parse(p) || null } }