new raceday and backup
This commit is contained in:
24
server.js
24
server.js
@@ -5,6 +5,7 @@ const { spawn } = require("child_process");
|
||||
const express = require("express");
|
||||
const Database = require("better-sqlite3");
|
||||
const publicTrainingProfile = require("./server/public_training_profile");
|
||||
const { createBackupService } = require("./server/backup_service");
|
||||
|
||||
const PORT = Number(process.env.PORT || 8081);
|
||||
const HOST = process.env.HOST || "0.0.0.0";
|
||||
@@ -30,6 +31,7 @@ db.pragma("journal_mode = WAL");
|
||||
db.pragma("foreign_keys = ON");
|
||||
|
||||
initSchema();
|
||||
const backupService = createBackupService({ db, dataDir: DB_DIR });
|
||||
const appVersion = {
|
||||
revision: 1,
|
||||
updatedAt: new Date().toISOString(),
|
||||
@@ -99,6 +101,28 @@ app.get("/api/app-version", (_req, res) => {
|
||||
res.json(appVersion);
|
||||
});
|
||||
|
||||
app.get("/api/backups", (_req, res) => {
|
||||
try {
|
||||
res.setHeader("Cache-Control", "no-store");
|
||||
res.json({ backups: backupService.listBackups() });
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error instanceof Error ? error.message : String(error) });
|
||||
}
|
||||
});
|
||||
|
||||
app.post("/api/backups", async (req, res) => {
|
||||
try {
|
||||
const backup = await backupService.createBackup({
|
||||
reason: req.body?.reason || "manual",
|
||||
sessionId: req.body?.sessionId || "",
|
||||
eventId: req.body?.eventId || "",
|
||||
});
|
||||
res.status(201).json({ ok: true, backup });
|
||||
} catch (error) {
|
||||
res.status(500).json({ error: error instanceof Error ? error.message : String(error) });
|
||||
}
|
||||
});
|
||||
|
||||
app.get("/api/ammc/config", (_req, res) => {
|
||||
res.json({
|
||||
config: ammcState.config,
|
||||
|
||||
Reference in New Issue
Block a user