db-vendo-client/p/db/loyalty-cards.js

57 lines
1.2 KiB
JavaScript
Raw Normal View History

import {deepStrictEqual as eql} from 'node:assert';
2020-03-18 21:35:43 +01:00
// todo: generate from https://reiseauskunft.bahn.de/addons/fachkonfig-utf8.cfg ?
2017-11-12 23:51:39 +01:00
const c = {
NONE: Symbol('no loyalty card'),
2017-11-12 23:51:39 +01:00
BAHNCARD: Symbol('Bahncard'),
VORTEILSCARD: Symbol('VorteilsCard'),
HALBTAXABO: Symbol('HalbtaxAbo'),
VOORDEELURENABO: Symbol('Voordeelurenabo'),
SHCARD: Symbol('SH-Card'),
GENERALABONNEMENT: Symbol('General-Abonnement'),
};
2017-11-12 23:51:39 +01:00
// see https://gist.github.com/juliuste/202bb04f450a79f8fa12a2ec3abcd72d
const formatLoyaltyCard = (data) => {
2024-12-07 23:48:08 +00:00
if (!data) {
return {
"art": "KEINE_ERMAESSIGUNG",
"klasse": "KLASSENLOS"
}
2024-12-07 23:48:08 +00:00
}
const cls = data.class === 1 ? 'KLASSE_1' : 'KLASSE_2';
if (data.type === c.BAHNCARD) {
return {
art: 'BAHNCARD'+data.discount,
klasse: cls
}
2017-11-12 23:51:39 +01:00
}
if (data.type === c.VORTEILSCARD) {
2024-12-07 23:48:08 +00:00
return {
art: 'A-VORTEILSCARD',
klasse: 'KLASSENLOS'
}
}
if (data.type === c.HALBTAXABO) {
2024-12-07 23:48:08 +00:00
return {
art: 'CH-HALBTAXABO_OHNE_RAILPLUS',
klasse: 'KLASSENLOS'
}
}
2024-12-07 23:48:08 +00:00
// TODO Rest
if (data.type === c.GENERALABONNEMENT) {
2024-12-07 23:48:08 +00:00
return {
art: 'CH-GENERAL-ABONNEMENT',
klasse: cls
}
}
2024-12-07 23:48:08 +00:00
return {
"art": "KEINE_ERMAESSIGUNG",
"klasse": "KLASSENLOS"
}
};
2022-05-07 16:17:37 +02:00
export {
c as data,
2024-12-07 23:48:08 +00:00
formatLoyaltyCard
};