From dce42bfa314a71b582138a24c8d52c528242f7c2 Mon Sep 17 00:00:00 2001 From: Jannis R Date: Thu, 11 Jun 2020 15:33:45 +0200 Subject: [PATCH] move trip parsing into parse/trip --- index.js | 14 +------------- lib/default-profile.js | 2 ++ parse/trip.js | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 parse/trip.js diff --git a/index.js b/index.js index 19d689db..3f8274f5 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,5 @@ 'use strict' -const minBy = require('lodash/minBy') -const maxBy = require('lodash/maxBy') const isObj = require('lodash/isObject') const sortBy = require('lodash/sortBy') const pRetry = require('p-retry') @@ -378,17 +376,7 @@ const createClient = (profile, userAgent, opt = {}) => { return profile.request({profile, opt}, userAgent, req) .then(({common, res}) => { const ctx = {profile, opt, common, res} - - const rawLeg = { // pretend the leg is contained in a journey - type: 'JNY', - dep: minBy(res.journey.stopL, 'idx'), - arr: maxBy(res.journey.stopL, 'idx'), - jny: res.journey - } - const trip = profile.parseJourneyLeg(ctx, rawLeg, res.journey.date) - trip.id = trip.tripId - delete trip.tripId - return trip + return profile.parseTrip(ctx, res.journey) }) } diff --git a/lib/default-profile.js b/lib/default-profile.js index b50ee4c9..a0e2c9c0 100644 --- a/lib/default-profile.js +++ b/lib/default-profile.js @@ -18,6 +18,7 @@ const parseIcon = require('../parse/icon') const parseWhen = require('../parse/when') const parseDeparture = require('../parse/departure') const parseArrival = require('../parse/arrival') +const parseTrip = require('../parse/trip') const parseJourneyLeg = require('../parse/journey-leg') const parseJourney = require('../parse/journey') const parseLine = require('../parse/line') @@ -70,6 +71,7 @@ const defaultProfile = { parseWhen, parseDeparture, parseArrival, + parseTrip, parseJourneyLeg, parseJourney, parseLine, diff --git a/parse/trip.js b/parse/trip.js new file mode 100644 index 00000000..1d5a96ab --- /dev/null +++ b/parse/trip.js @@ -0,0 +1,24 @@ +'use strict' + +const minBy = require('lodash/minBy') +const maxBy = require('lodash/maxBy') + +const parseTrip = (ctx, t) => { // t = raw trip + const {profile} = ctx + + // pretend the trip is a leg in a journey + const fakeLeg = { + type: 'JNY', + dep: minBy(t.stopL, 'idx'), + arr: maxBy(t.stopL, 'idx'), + jny: t, + } + const trip = profile.parseJourneyLeg(ctx, fakeLeg, t.date) + + trip.id = trip.tripId + delete trip.tripId + + return trip +} + +module.exports = parseTrip