From 673d6f8279bd555f5ef4c7aa16e80b3d119e4ee1 Mon Sep 17 00:00:00 2001 From: Jannis R Date: Wed, 29 Dec 2021 18:25:56 +0100 Subject: [PATCH] =?UTF-8?q?VBB:=20remove=20vbb-parse-ticket,=20adapt=20to?= =?UTF-8?q?=20new=20response=20format=20=F0=9F=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- p/vbb/index.js | 33 +++++++++++++++++++-------------- p/vbb/readme.md | 1 - package.json | 3 +-- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/p/vbb/index.js b/p/vbb/index.js index dd2e5a04..5321024b 100644 --- a/p/vbb/index.js +++ b/p/vbb/index.js @@ -1,7 +1,6 @@ 'use strict' const parseLineName = require('vbb-parse-line') -const parseTicket = require('vbb-parse-ticket') const {parseHook} = require('../../lib/profile-hooks') const parseAndAddLocationDHID = require('./parse-loc-dhid') @@ -31,23 +30,29 @@ const parseLocation = ({parsed}, l) => { return parsed } +// todo: move this to parse/tickets.js? const parseJourneyWithTickets = ({parsed}, j) => { if ( j.trfRes && - Array.isArray(j.trfRes.fareSetL) && - j.trfRes.fareSetL[0] && - Array.isArray(j.trfRes.fareSetL[0].fareL) + Array.isArray(j.trfRes.fareSetL) ) { - parsed.tickets = [] - const sets = j.trfRes.fareSetL[0].fareL - for (let s of sets) { - if (!Array.isArray(s.ticketL) || s.ticketL.length === 0) continue - for (let t of s.ticketL) { - const ticket = parseTicket(t) - ticket.name = s.name + ' – ' + ticket.name - parsed.tickets.push(ticket) - } - } + parsed.tickets = j.trfRes.fareSetL + .map((s) => { + if (!Array.isArray(s.fareL) || s.fareL.length === 0) return null + return { + name: s.name, + description: s.desc, + tickets: s.fareL.map((f) => ({ + // todo: sometimes there's also t.ticketL + name: f.name, + price: f.price, + })), + } + }) + .filter(set => !!set) + + // todo: j.trfRes.totalPrice + // todo: j.trfRes.msgL } return parsed diff --git a/p/vbb/readme.md b/p/vbb/readme.md index 7c774e36..3b7fc36d 100644 --- a/p/vbb/readme.md +++ b/p/vbb/readme.md @@ -17,5 +17,4 @@ const client = createClient(vbbProfile, 'my-awesome-program') - parses *VBB*-specific products (such as *X-Bus*) - parses line names to give more information (e.g. "Is it an express bus?") -- parses *VBB*-specific tickets - renames *Ringbahn* line names to contain `⟳` and `⟲` diff --git a/package.json b/package.json index 21d21801..75dbab0c 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,7 @@ "pinkie-promise": "^2.0.1", "qs": "^6.6.0", "slugg": "^1.2.0", - "vbb-parse-line": "^1.0.0", - "vbb-parse-ticket": "^0.2.1" + "vbb-parse-line": "^1.0.0" }, "devDependencies": { "eslint": "^7.0.0",