diff --git a/server/src/api/controllers/sessionController.js b/server/src/api/controllers/sessionController.js index 656d12f..444f1ce 100644 --- a/server/src/api/controllers/sessionController.js +++ b/server/src/api/controllers/sessionController.js @@ -3,6 +3,26 @@ import Quest from '../../models/quest.js' import { createContainer } from '../../containers/docker.js' import SessionHandler from '../../game/sessionHandler.js' +function sessionSummary(session) { + return { + _id: session._id, + user: session.user._id || session.user, + quest: session.quest._id || session.quest, + status: session.status, + createdAt: session.createdAt, + lastActivityAt: session.lastActivityAt, + } +} + +function sessionDetail(session) { + return { + ...sessionSummary(session), + hints: session.hints, + tasks: session.tasks, + graph: session.graph, + } +} + export async function getSessionList(req, res) { try { const query = { user: req.user._id } @@ -11,27 +31,7 @@ export async function getSessionList(req, res) { } query.status = req.query.status || 'active' const sessions = await Session.find(query) - res.json( - sessions.map( - ({ - _id, - user, - quest, - status, - progress, - createdAt, - lastActivityAt, - }) => ({ - _id, - user, - quest, - status, - progress, - createdAt, - lastActivityAt, - }) - ) - ) + res.json(sessions.map(sessionSummary)) } catch (err) { console.error(err) res.status(500).json({ message: err.message }) @@ -59,7 +59,7 @@ export async function createSession(req, res) { session.addNewTasks() await newSession.save() - res.status(201).json(newSession) + res.status(201).json(sessionDetail(newSession)) } catch (err) { console.error(err) res.status(400).json({ message: err.message }) @@ -78,7 +78,7 @@ export async function getSessionById(req, res) { return } - res.json(session) + res.json(sessionDetail(session)) } catch (err) { res.status(500).json({ message: err.message }) }