move trip parsing into parse/trip

This commit is contained in:
Jannis R 2020-06-11 15:33:45 +02:00
parent 7c0be5ed74
commit dce42bfa31
No known key found for this signature in database
GPG key ID: 0FE83946296A88A5
3 changed files with 27 additions and 13 deletions

View file

@ -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)
})
}

View file

@ -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,

24
parse/trip.js Normal file
View file

@ -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