This commit is contained in:
2026-06-03 13:58:12 -05:00
commit 2f13b8c590
54 changed files with 5136 additions and 0 deletions

65
server/app.js Normal file
View File

@@ -0,0 +1,65 @@
require('dotenv').config();
const express = require('express');
const path = require('path');
const { DB_PATH, initialize } = require('./db');
const { createCorsMiddleware } = require('./middleware/cors');
const { requireAuth } = require('./middleware/auth');
const adminRoutes = require('./routes/admin');
const assetRoutes = require('./routes/assets');
const assignmentRoutes = require('./routes/assignments');
const authRoutes = require('./routes/auth');
const dashboardRoutes = require('./routes/dashboard');
const dataPortabilityRoutes = require('./routes/dataPortability');
const profileRoutes = require('./routes/profile');
const referenceRoutes = require('./routes/reference');
const reportRoutes = require('./routes/reports');
const taxRuleRoutes = require('./routes/taxRules');
const templateRoutes = require('./routes/templates');
const workdayRoutes = require('./routes/workday');
function createApp() {
initialize();
const app = express();
app.use(createCorsMiddleware());
app.use(express.json({ limit: '12mb' }));
app.get('/api/health', (req, res) => {
res.json({ ok: true, app: 'MixedAssets', database: DB_PATH });
});
app.use('/api', authRoutes);
app.use('/api', requireAuth);
app.use('/api', profileRoutes);
app.use('/api', dashboardRoutes);
app.use('/api', referenceRoutes);
app.use('/api', assetRoutes);
app.use('/api', assignmentRoutes);
app.use('/api', templateRoutes);
app.use('/api', taxRuleRoutes);
app.use('/api', reportRoutes);
app.use('/api', dataPortabilityRoutes);
app.use('/api', adminRoutes);
app.use('/api', workdayRoutes);
const distPath = path.join(process.cwd(), 'dist');
app.use(express.static(distPath));
app.get(/.*/, (req, res, next) => {
if (req.path.startsWith('/api')) return next();
return res.sendFile(path.join(distPath, 'index.html'));
});
app.use((error, req, res, next) => {
if (res.headersSent) return next(error);
const status = error.status || 500;
return res.status(status).json({ error: error.message || 'MixedAssets server error' });
});
return app;
}
module.exports = {
createApp
};