Files
layonara-forge/packages/backend/src/routes/server.ts
T
2026-04-20 19:55:31 -04:00

71 lines
1.5 KiB
TypeScript

import { Router } from "express";
import {
startServer,
stopServer,
restartServer,
getServerStatus,
generateServerConfig,
seedDatabase,
} from "../services/server.service.js";
const router = Router();
router.get("/status", async (_req, res) => {
try {
const status = await getServerStatus();
res.json(status);
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
router.post("/start", async (_req, res) => {
try {
await startServer();
res.json({ ok: true });
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
router.post("/stop", async (_req, res) => {
try {
await stopServer();
res.json({ ok: true });
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
router.post("/restart", async (_req, res) => {
try {
await restartServer();
res.json({ ok: true });
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
router.post("/generate-config", async (_req, res) => {
try {
await generateServerConfig();
res.json({ ok: true });
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
router.post("/seed-db", async (req, res) => {
const { cdKey, playerName } = req.body;
if (!cdKey || !playerName)
return res.status(400).json({ error: "cdKey and playerName required" });
try {
await seedDatabase(cdKey, playerName);
res.json({ ok: true });
} catch (err: any) {
res.status(500).json({ error: err.message });
}
});
export default router;