Fix login, root route, hero redirect and game page API handling

This commit is contained in:
2026-10-21 13:46:13 +11:00
parent 1564615322
commit a616244d4e
4 changed files with 44 additions and 32 deletions
+7 -2
View File
@@ -2,6 +2,11 @@ const rateLimit = require('express-rate-limit');
const zod = require('zod');
const { AppError } = require('../utils/errors');
const { register, verifyLogin } = require('../services/authService');
const { getDb } = require('../db');
function userHasHero(userId) {
return !!getDb().prepare('SELECT 1 FROM characters WHERE user_id = ?').get(userId);
}
// Validation schemas
const registerSchema = zod.strictObject({
@@ -63,7 +68,7 @@ async function handleLogin(req, res) {
req.session.regenerate((err) => {
if (err) throw new AppError('INTERNAL_ERROR', 'Session regeneration failed.', 500);
req.session.userId = user.id;
res.json({ ok: true, data: { user: { id: user.id, username: user.username }, hasHero: false } });
res.json({ ok: true, data: { user: { id: user.id, username: user.username }, hasHero: userHasHero(user.id) } });
});
}
@@ -77,7 +82,7 @@ async function handleLogout(req, res) {
async function handleMe(req, res) {
const userId = req.session.userId;
res.json({ ok: true, data: { user: { id: userId, username: req.session.username || '' }, hasHero: false } });
res.json({ ok: true, data: { user: { id: userId, username: req.session.username || '' }, hasHero: userHasHero(userId) } });
}
module.exports = {