fertig-classic-games/server/history/routes.js

36 lines
1.0 KiB
JavaScript

import { Router } from 'express';
import db from '../db/index.js';
import { requireAuth } from '../auth/middleware.js';
const router = Router();
router.get('/', requireAuth, (req, res) => {
const rows = db
.prepare(
`SELECT m.id AS match_id, g.slug, g.name, g.category,
m.started_at, m.ended_at, m.status,
mp.seat, mp.result, mp.score
FROM match_players mp
JOIN matches m ON m.id = mp.match_id
JOIN games g ON g.id = m.game_id
WHERE mp.user_id = ?
ORDER BY m.started_at DESC
LIMIT 100`,
)
.all(req.user.id);
const summary = db
.prepare(
`SELECT
SUM(CASE WHEN result = 'win' THEN 1 ELSE 0 END) AS wins,
SUM(CASE WHEN result = 'loss' THEN 1 ELSE 0 END) AS losses,
SUM(CASE WHEN result = 'draw' THEN 1 ELSE 0 END) AS draws
FROM match_players WHERE user_id = ?`,
)
.get(req.user.id) ?? { wins: 0, losses: 0, draws: 0 };
res.json({ matches: rows, summary });
});
export default router;