Files
mythic-oracle/server/index.js
T
claudecode 3a7340975f feat: Phase 3 campaign management
Campaign CRUD API with cascading delete across all campaign-scoped
tables, a systems endpoint to seed the create-campaign form, active
campaign state wired to the sidebar chaos factor, and a campaign
management view for creating/switching/deleting campaigns.
2026-06-30 23:22:34 -04:00

34 lines
1018 B
JavaScript

const path = require('path');
const express = require('express');
require('./db');
const campaignsRouter = require('./routes/campaigns');
const charactersRouter = require('./routes/characters');
const threadsRouter = require('./routes/threads');
const npcsRouter = require('./routes/npcs');
const notesRouter = require('./routes/notes');
const tablesRouter = require('./routes/tables');
const systemsRouter = require('./routes/systems');
const app = express();
const PORT = 4000;
app.use(express.json());
app.use(express.static(path.join(__dirname, '..', 'public')));
app.get('/health', (req, res) => {
res.json({ status: 'ok' });
});
app.use('/api/campaigns', campaignsRouter);
app.use('/api/characters', charactersRouter);
app.use('/api/threads', threadsRouter);
app.use('/api/npcs', npcsRouter);
app.use('/api/notes', notesRouter);
app.use('/api/tables', tablesRouter);
app.use('/api/systems', systemsRouter);
app.listen(PORT, () => {
console.log(`Mythic Oracle running at http://localhost:${PORT}`);
});