Files
dwroller/database/sessionModel.js
Alex 254ba5bd1d Fix login UI: add user dropdown selector, fix build syntax error
- Replace username text input with dropdown selector for player login
- Fix unescaped apostrophe in MissionSimTab.jsx (Emperor's -> double quotes)
- Fix em-dash encoding issues in MissionSimTab.jsx
- Update player password to 1234 in .env
2026-06-23 14:43:51 +02:00

55 lines
1.4 KiB
JavaScript

const { sessionHelpers, logToFile } = require('./mariadb');
async function createSession(sessionId, data, expiresAt) {
try {
// Check if session already exists
const existing = await sessionHelpers.get(sessionId);
if (existing) {
await sessionHelpers.update(sessionId, data);
return existing;
}
await sessionHelpers.create(sessionId, data, expiresAt);
logToFile('Session created:', sessionId);
} catch (error) {
console.error('Error creating session:', error);
logToFile('Session creation error:', error);
throw error;
}
}
async function validateSession(sessionId) {
try {
const session = await sessionHelpers.get(sessionId);
if (!session) return null;
// Check expiration
if (session.expires_at && new Date(session.expires_at) < new Date()) {
await sessionHelpers.delete(sessionId);
logToFile('Session expired:', sessionId);
return null;
}
return session;
} catch (error) {
console.error('Error validating session:', error);
logToFile('Session validation error:', error);
return null;
}
}
async function deleteSession(sessionId) {
try {
await sessionHelpers.delete(sessionId);
logToFile('Session deleted:', sessionId);
} catch (error) {
console.error('Error deleting session:', error);
logToFile('Session deletion error:', error);
}
}
module.exports = {
createSession,
validateSession,
deleteSession
};