Fix login, root route, hero redirect and game page API handling
This commit is contained in:
+7
-2
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user