WIP: PayPal-Einstellungen ueber die Verwaltung (Test folgt auf dem Server)

This commit is contained in:
2026-08-23 16:50:18 +02:00
parent 692d702ebf
commit 5043642951
6 changed files with 629 additions and 11 deletions
+17
View File
@@ -124,7 +124,13 @@ import {
import {
zahlungAnsehen, zahlungStarten, zahlungAbschliessen,
paypalWebhook, zahlungAnlegen, zahlungenListe,
einstellungenLesen, einstellungenSchreiben, einstellungenPruefen,
} from "./routes/webdesign-zahlungen.js";
/* PayPal-Zugangsdaten koennen verschluesselt in der Datenbank liegen,
damit Filipe sie in seiner Verwaltung eintragen kann statt per SSH.
Sie muessen beim Start EINMAL entschluesselt werden, weil die
Pruefungen des PayPal-Moduls synchron sind. */
import { geheimnisseLaden } from "./lib/webdesign-geheimnisse.js";
import { vorlagenSicherstellen } from "./lib/webdesign-vorlagen.js";
initDb();
@@ -135,6 +141,14 @@ initDb();
Neustart weg -- und niemand kaeme auf die Idee, dass der Neustart
daran schuld war. */
vorlagenSicherstellen();
/* Ebenfalls nach initDb. Faellt das aus (z.B. weil der ENCRYPTION_KEY
fehlt), laeuft der Dienst trotzdem weiter -- er verhaelt sich dann so,
als waere in der Verwaltung nichts hinterlegt, und die .env gilt
weiter. Ein fehlender Zahlungsanbieter darf nicht die ganze Seite
anhalten. */
geheimnisseLaden()
.then((n) => { if (n) console.log(`[webdesign] ${n} Einstellungen aus der Datenbank geladen.`); })
.catch((e) => console.error("[webdesign] Einstellungen nicht ladbar:", e?.message));
const PORT = Number(process.env.PORT || 4200);
const app = express();
@@ -332,6 +346,9 @@ app.post("/webdesign/portal/zahlung/:id/start", wrap(zahlungStarten));
app.post("/webdesign/portal/zahlung/:id/abschluss", wrap(zahlungAbschliessen));
app.get("/webdesign/admin/zahlungen", wrap(zahlungenListe));
app.post("/webdesign/admin/zahlungen", wrap(zahlungAnlegen));
app.get("/webdesign/admin/einstellungen", wrap(einstellungenLesen));
app.post("/webdesign/admin/einstellungen", wrap(einstellungenSchreiben));
app.post("/webdesign/admin/einstellungen/pruefen", wrap(einstellungenPruefen));
app.get("/webdesign/admin/postfach", wrap(adminPostfachListe));
app.get("/webdesign/admin/postfach-zaehler", wrap(adminPostfachZaehler));
app.get("/webdesign/admin/postfach/:kundeId", wrap(adminPostfachVerlauf));