Files
Webklar-Kundenbereich/server/services/aboUnterlagen.js
T

33 lines
1.7 KiB
JavaScript

import { config } from '../config.js'
import { legalPaths } from './analyseLegal.js'
/**
* Einzige Quelle der verlinkten Unterlagen im Abo-Modell (Katalog, Einschalt-Nachweis, Analyse). Blattmodul: importiert
* nur config und analyseLegal.js. Liest bei jedem Aufruf (Tests aendern config zur Laufzeit). Task 15 (Fassung 6) stellt
* nur diese Quelle um; die Aufrufer bleiben unveraendert.
*/
const fassung = (unterlage) => (unterlage ? { version: unterlage.version, url: unterlage.url ?? '' } : null)
/**
* Leistungsbeschreibung und AVV einer Funktion: { leistungsbeschreibung: { version, url } | null, avv: { version, url } | null }.
* Funktionen aus dem Register: deren Eintraege; 'analyse': die versionierten Seiten aus legalPaths(config.analyse.avvVersion).
* Ein unbekannter Schluessel ist ein Programmfehler (TypeError).
*/
export function unterlagenFuer(key) {
if (key === 'analyse') {
const version = config.analyse.avvVersion
const pfade = legalPaths(version)
return { leistungsbeschreibung: { version, url: pfade.lb }, avv: { version, url: pfade.avv } }
}
if (typeof key !== 'string' || !Object.hasOwn(config.features, key)) throw new TypeError(`Unbekannte Funktion: ${String(key)}`)
const eintrag = config.features[key]
return { leistungsbeschreibung: fassung(eintrag.leistungsbeschreibung), avv: fassung(eintrag.avv) }
}
/** Unterlagen der Analyse fuer Nachweis und Mail: { avvVersion, legal: { lb, avv } } (Adressen der versionierten Seiten). */
export function analyseUnterlagen() {
const { leistungsbeschreibung, avv } = unterlagenFuer('analyse')
return { avvVersion: avv.version, legal: { lb: leistungsbeschreibung.url, avv: avv.url } }
}