mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
fix: session response payload
This commit is contained in:
1 parent
0f53696f71
commit
04a0b21cf6
1 file changed
+23
-23
@@ -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 })
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user