feat(admin): add system logs viewer, tabbed data management, fix AT20 sync

This commit is contained in:
Matthias Hochmeister
2026-04-18 18:31:22 +02:00
parent 0a6377a64f
commit 0a5402a9e5
7 changed files with 526 additions and 205 deletions

View File

@@ -2,7 +2,7 @@ import 'dotenv/config';
import * as http from 'http';
import { Pool } from 'pg';
import { scrapeAll } from './scraper';
import { syncToDatabase } from './db';
import { syncToDatabase, syncAT20ToAtemschutz } from './db';
// In-memory log ring buffer — last 500 lines captured from all modules
const LOG_BUFFER_MAX = 500;
@@ -70,6 +70,7 @@ async function runSync(force = false): Promise<void> {
const { members, ausbildungen, befoerderungen, untersuchungen, fahrgenehmigungen } = await scrapeAll(username, password);
await syncToDatabase(pool, members, ausbildungen, befoerderungen, untersuchungen, fahrgenehmigungen, force);
log(`Sync complete — ${members.length} members, ${ausbildungen.length} Ausbildungen, ${befoerderungen.length} Beförderungen, ${untersuchungen.length} Untersuchungen, ${fahrgenehmigungen.length} Fahrgenehmigungen`);
await syncAT20ToAtemschutz(pool);
} finally {
syncRunning = false;
await pool.end();