db-vendo-client/format/loyalty-cards.js
2024-12-21 15:26:49 +00:00

53 lines
1.2 KiB
JavaScript

const c = {
NONE: Symbol('no loyalty card'),
BAHNCARD: Symbol('Bahncard'),
VORTEILSCARD: Symbol('VorteilsCard'),
HALBTAXABO: Symbol('HalbtaxAbo'),
VOORDEELURENABO: Symbol('Voordeelurenabo'),
SHCARD: Symbol('SH-Card'),
GENERALABONNEMENT: Symbol('General-Abonnement'),
};
// see https://gist.github.com/juliuste/202bb04f450a79f8fa12a2ec3abcd72d
const formatLoyaltyCard = (data) => {
if (!data) {
return {
art: 'KEINE_ERMAESSIGUNG',
klasse: 'KLASSENLOS',
};
}
const cls = data.class === 1 ? 'KLASSE_1' : 'KLASSE_2';
if (data.type.toString() === c.BAHNCARD.toString()) {
return {
art: 'BAHNCARD' + data.discount,
klasse: cls,
};
}
if (data.type.toString() === c.VORTEILSCARD.toString()) {
return {
art: 'A-VORTEILSCARD',
klasse: 'KLASSENLOS',
};
}
if (data.type.toString() === c.HALBTAXABO.toString()) {
return {
art: 'CH-HALBTAXABO_OHNE_RAILPLUS',
klasse: 'KLASSENLOS',
};
}
// TODO Rest
if (data.type.toString() === c.GENERALABONNEMENT.toString()) {
return {
art: 'CH-GENERAL-ABONNEMENT',
klasse: cls,
};
}
return {
art: 'KEINE_ERMAESSIGUNG',
klasse: 'KLASSENLOS',
};
};
export {
c as data,
formatLoyaltyCard,
};