Files
kitchen-agent/routes/dashboard.js
2025-10-23 19:02:56 -04:00

36 lines
1.0 KiB
JavaScript

const config = require('../config');
const database = require('../database');
// Middleware to check authentication via signed cookie
async function requireAuth(req, reply) {
const raw = req.cookies && req.cookies.kitchen_session;
if (!raw) { reply.redirect('/login'); return; }
const { valid, value } = req.unsignCookie(raw || '');
if (!valid) { reply.redirect('/login'); return; }
const token = config.get('authToken');
const expiry = config.get('tokenExpiry');
const apiClient = require('../api-client');
if (!token || apiClient.isTokenExpired(expiry) || value !== token) {
reply.redirect('/login');
return;
}
}
async function dashboardRoutes(fastify, options) {
// Dashboard page
fastify.get('/dashboard', { preHandler: requireAuth }, async (req, reply) => {
const appConfig = config.getAll();
const stats = database.getOrderStats();
return reply.view('dashboard', {
config: appConfig,
stats: stats,
showStats: appConfig.showOrderStats !== 'false'
});
});
}
module.exports = dashboardRoutes;