33 lines
1.7 KiB
JavaScript
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 } }
|
|
}
|