fix: session response payload

This commit is contained in:
wancat committed 2023-09-12 00:12:22 +08:00
1 parent 0f53696f71
commit 04a0b21cf6
1 file changed
+23 -23
+23 -23
View File
@@ -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 })
}