mirror of
https://github.com/public-transport/db-vendo-client.git
synced 2025-02-23 15:19:35 +02:00
move trip parsing into parse/trip
This commit is contained in:
parent
7c0be5ed74
commit
dce42bfa31
3 changed files with 27 additions and 13 deletions
14
index.js
14
index.js
|
@ -1,7 +1,5 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const minBy = require('lodash/minBy')
|
|
||||||
const maxBy = require('lodash/maxBy')
|
|
||||||
const isObj = require('lodash/isObject')
|
const isObj = require('lodash/isObject')
|
||||||
const sortBy = require('lodash/sortBy')
|
const sortBy = require('lodash/sortBy')
|
||||||
const pRetry = require('p-retry')
|
const pRetry = require('p-retry')
|
||||||
|
@ -378,17 +376,7 @@ const createClient = (profile, userAgent, opt = {}) => {
|
||||||
return profile.request({profile, opt}, userAgent, req)
|
return profile.request({profile, opt}, userAgent, req)
|
||||||
.then(({common, res}) => {
|
.then(({common, res}) => {
|
||||||
const ctx = {profile, opt, common, res}
|
const ctx = {profile, opt, common, res}
|
||||||
|
return profile.parseTrip(ctx, res.journey)
|
||||||
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
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ const parseIcon = require('../parse/icon')
|
||||||
const parseWhen = require('../parse/when')
|
const parseWhen = require('../parse/when')
|
||||||
const parseDeparture = require('../parse/departure')
|
const parseDeparture = require('../parse/departure')
|
||||||
const parseArrival = require('../parse/arrival')
|
const parseArrival = require('../parse/arrival')
|
||||||
|
const parseTrip = require('../parse/trip')
|
||||||
const parseJourneyLeg = require('../parse/journey-leg')
|
const parseJourneyLeg = require('../parse/journey-leg')
|
||||||
const parseJourney = require('../parse/journey')
|
const parseJourney = require('../parse/journey')
|
||||||
const parseLine = require('../parse/line')
|
const parseLine = require('../parse/line')
|
||||||
|
@ -70,6 +71,7 @@ const defaultProfile = {
|
||||||
parseWhen,
|
parseWhen,
|
||||||
parseDeparture,
|
parseDeparture,
|
||||||
parseArrival,
|
parseArrival,
|
||||||
|
parseTrip,
|
||||||
parseJourneyLeg,
|
parseJourneyLeg,
|
||||||
parseJourney,
|
parseJourney,
|
||||||
parseLine,
|
parseLine,
|
||||||
|
|
24
parse/trip.js
Normal file
24
parse/trip.js
Normal 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
|
Loading…
Add table
Reference in a new issue