From 8e44f2adc7a2e52fe0c38d7ab9e87f5b5131a990 Mon Sep 17 00:00:00 2001 From: sharhio Date: Wed, 18 Sep 2024 12:57:00 +0300 Subject: [PATCH 1/4] ticket link testing turned on for lahti --- app/configurations/config.lahti.js | 54 ++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/app/configurations/config.lahti.js b/app/configurations/config.lahti.js index f8446f358a..0108763dbd 100644 --- a/app/configurations/config.lahti.js +++ b/app/configurations/config.lahti.js @@ -172,4 +172,58 @@ export default configMerger(walttiConfig, { }, }, }, + + showTicketInformation: true, + useTicketIcons: true, + ticketLink: 'https://www.lsl.fi/liput-ja-hinnat/', + showTicketPrice: true, + + showTicketLinkOnlyWhenTesting: true, + settingsForFeatureTesting: { + walkSpeed: 0.69, + bikeSpeed: 8.33, + includeBikeSuggestions: false, + transferPenalty: 1600, + }, + + ticketPurchaseLink: function purchaseTicketLink(fare) { + const fareId = fare.fareProducts[0].product.id; + const ticket = fareId?.substring + ? fareId.substring(fareId.indexOf(':') + 1) + : ''; + let zones = ''; + // Waltti wants zone ids, so map A to 01, B to 02 etc + for (let i = 0; i < ticket.length; i++) { + zones += `0${ticket.charCodeAt(i) - 64}`; // eslint-disable + } + return `https://kauppa.waltti.fi/walttiappfeat/busTicket/?operator=50223&ticketType=single&customerGroup=adult&zones=${zones}`; + }, + + fareMapping: function mapFareId(fareId) { + const id = fareId?.substring?.(fareId.indexOf(':') + 1); + switch (id) { + case 'A': + return 'Käteismaksu autossa, Vyöhyke A'; + case 'AB': + return 'Käteismaksu autossa, Vyöhykkeet AB'; + case 'ABC': + return 'Käteismaksu autossa, Vyöhykkeet ABC'; + case 'ABCD': + return 'Käteismaksu autossa, Vyöhykkeet ABCD'; + case 'B': + return 'Käteismaksu autossa, Vyöhyke B'; + case 'BC': + return 'Käteismaksu autossa, Vyöhykkeet BC'; + case 'BCD': + return 'Käteismaksu autossa, Vyöhykkeet BCD'; + case 'C': + return 'Käteismaksu autossa, Vyöhyke C'; + case 'CD': + return 'Käteismaksu autossa, Vyöhykkeet CD'; + case 'D': + return 'Käteismaksu autossa, Vyöhyke D'; + default: + return ''; + } + }, }); From 9ea453a8a75bdf94f9688bf7760a60c0c3b78890 Mon Sep 17 00:00:00 2001 From: sharhio Date: Tue, 1 Oct 2024 10:53:01 +0300 Subject: [PATCH 2/4] shared waltti ticketlink config --- app/configurations/config.jyvaskyla.js | 13 ------------- app/configurations/config.lahti.js | 13 ------------- app/configurations/config.waltti.js | 13 +++++++++++++ 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/app/configurations/config.jyvaskyla.js b/app/configurations/config.jyvaskyla.js index af6d6ecd6d..a536b24eb1 100644 --- a/app/configurations/config.jyvaskyla.js +++ b/app/configurations/config.jyvaskyla.js @@ -173,19 +173,6 @@ export default configMerger(walttiConfig, { transferPenalty: 1600, }, - ticketPurchaseLink: function purchaseTicketLink(fare) { - const fareId = fare.fareProducts[0].product.id; - const ticket = fareId?.substring - ? fareId.substring(fareId.indexOf(':') + 1) - : ''; - let zones = ''; - // Waltti wants zone ids, so map A to 01, B to 02 etc - for (let i = 0; i < ticket.length; i++) { - zones += `0${ticket.charCodeAt(i) - 64}`; // eslint-disable - } - return `https://waltti.fi/walttiapp/busTicket/?operator=50209&ticketType=single&customerGroup=adult&zones=${zones}`; - }, - fareMapping: function mapFareId(fareId) { const id = fareId?.substring?.(fareId.indexOf(':') + 1); switch (id) { diff --git a/app/configurations/config.lahti.js b/app/configurations/config.lahti.js index 0108763dbd..1119e1cbf2 100644 --- a/app/configurations/config.lahti.js +++ b/app/configurations/config.lahti.js @@ -186,19 +186,6 @@ export default configMerger(walttiConfig, { transferPenalty: 1600, }, - ticketPurchaseLink: function purchaseTicketLink(fare) { - const fareId = fare.fareProducts[0].product.id; - const ticket = fareId?.substring - ? fareId.substring(fareId.indexOf(':') + 1) - : ''; - let zones = ''; - // Waltti wants zone ids, so map A to 01, B to 02 etc - for (let i = 0; i < ticket.length; i++) { - zones += `0${ticket.charCodeAt(i) - 64}`; // eslint-disable - } - return `https://kauppa.waltti.fi/walttiappfeat/busTicket/?operator=50223&ticketType=single&customerGroup=adult&zones=${zones}`; - }, - fareMapping: function mapFareId(fareId) { const id = fareId?.substring?.(fareId.indexOf(':') + 1); switch (id) { diff --git a/app/configurations/config.waltti.js b/app/configurations/config.waltti.js index 68853ea50f..97fb8ac875 100644 --- a/app/configurations/config.waltti.js +++ b/app/configurations/config.waltti.js @@ -267,4 +267,17 @@ export default { value: 600, }, ], + + ticketPurchaseLink: function purchaseTicketLink(fare) { + const fareId = fare.fareProducts[0].product.id; + const ticket = fareId?.substring + ? fareId.substring(fareId.indexOf(':') + 1) + : ''; + let zones = ''; + // Waltti wants zone ids, so map A to 01, B to 02 etc + for (let i = 0; i < ticket.length; i++) { + zones += `0${ticket.charCodeAt(i) - 64}`; // eslint-disable + } + return `https://waltti.fi/walttiapp/busTicket/?operator=50209&ticketType=single&customerGroup=adult&zones=${zones}`; + }, }; From 9424eeddd594977d0c14883586b8ffe7e9a32009 Mon Sep 17 00:00:00 2001 From: sharhio Date: Wed, 9 Oct 2024 13:31:09 +0300 Subject: [PATCH 3/4] operator code and link showing fixed --- app/component/itinerary/MobileTicketPurchaseInformation.js | 5 ++++- app/configurations/config.jyvaskyla.js | 1 + app/configurations/config.lahti.js | 1 + app/configurations/config.waltti.js | 4 ++-- app/util/fareUtils.js | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/component/itinerary/MobileTicketPurchaseInformation.js b/app/component/itinerary/MobileTicketPurchaseInformation.js index 76b0d2f4e0..475988c6ff 100644 --- a/app/component/itinerary/MobileTicketPurchaseInformation.js +++ b/app/component/itinerary/MobileTicketPurchaseInformation.js @@ -62,7 +62,10 @@ export default function MobileTicketPurchaseInformation( {faresInfo()}
addAnalyticsEvent({ event: 'journey_planner_open_app' }) } diff --git a/app/configurations/config.jyvaskyla.js b/app/configurations/config.jyvaskyla.js index a536b24eb1..ac789f99dc 100644 --- a/app/configurations/config.jyvaskyla.js +++ b/app/configurations/config.jyvaskyla.js @@ -172,6 +172,7 @@ export default configMerger(walttiConfig, { includeBikeSuggestions: false, transferPenalty: 1600, }, + ticketLinkOperatorCode: 50209, fareMapping: function mapFareId(fareId) { const id = fareId?.substring?.(fareId.indexOf(':') + 1); diff --git a/app/configurations/config.lahti.js b/app/configurations/config.lahti.js index 1119e1cbf2..b14767b144 100644 --- a/app/configurations/config.lahti.js +++ b/app/configurations/config.lahti.js @@ -185,6 +185,7 @@ export default configMerger(walttiConfig, { includeBikeSuggestions: false, transferPenalty: 1600, }, + ticketLinkOperatorCode: 50223, fareMapping: function mapFareId(fareId) { const id = fareId?.substring?.(fareId.indexOf(':') + 1); diff --git a/app/configurations/config.waltti.js b/app/configurations/config.waltti.js index ed9477c94f..74229b6684 100644 --- a/app/configurations/config.waltti.js +++ b/app/configurations/config.waltti.js @@ -265,7 +265,7 @@ export default { }, ], - ticketPurchaseLink: function purchaseTicketLink(fare) { + ticketPurchaseLink: function purchaseTicketLink(fare, operatorCode) { const fareId = fare.fareProducts[0].product.id; const ticket = fareId?.substring ? fareId.substring(fareId.indexOf(':') + 1) @@ -275,6 +275,6 @@ export default { for (let i = 0; i < ticket.length; i++) { zones += `0${ticket.charCodeAt(i) - 64}`; // eslint-disable } - return `https://waltti.fi/walttiapp/busTicket/?operator=50209&ticketType=single&customerGroup=adult&zones=${zones}`; + return `https://waltti.fi/walttiapp/busTicket/?operator=${operatorCode}&ticketType=single&customerGroup=adult&zones=${zones}`; }, }; diff --git a/app/util/fareUtils.js b/app/util/fareUtils.js index c5371e48db..3179b45686 100644 --- a/app/util/fareUtils.js +++ b/app/util/fareUtils.js @@ -119,6 +119,7 @@ export const shouldShowFarePurchaseInfo = (config, breakpoint, fares) => { !unknownFares && fares?.length === 1 && config.ticketPurchaseLink && + config.ticketLinkOperatorCode && breakpoint !== 'large' ); }; From 83ea6cd8c91fa64c32970c1ac37a522c361881a1 Mon Sep 17 00:00:00 2001 From: sharhio Date: Wed, 9 Oct 2024 15:47:42 +0300 Subject: [PATCH 4/4] hsl operator code --- app/configurations/config.hsl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/configurations/config.hsl.js b/app/configurations/config.hsl.js index e75e801eba..f130d9b766 100644 --- a/app/configurations/config.hsl.js +++ b/app/configurations/config.hsl.js @@ -418,6 +418,7 @@ export default { return `https://open.app.hsl.fi/zoneTicketWizard/TICKET_TYPE_SINGLE_TICKET/${fare.ticketName}/adult/-`; }, ticketLink: 'https://open.app.hsl.fi/tickets', + ticketLinkOperatorCode: 'hsl', // mapping fareId from OTP fare identifiers to human readable form // in the new HSL zone model, just strip off the prefix 'HSL:' fareMapping: function mapHslFareId(fareId) {