mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-08 11:30:12 +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 { createContainer } from '../../containers/docker.js'
|
||||||
import SessionHandler from '../../game/sessionHandler.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) {
|
export async function getSessionList(req, res) {
|
||||||
try {
|
try {
|
||||||
const query = { user: req.user._id }
|
const query = { user: req.user._id }
|
||||||
@@ -11,27 +31,7 @@ export async function getSessionList(req, res) {
|
|||||||
}
|
}
|
||||||
query.status = req.query.status || 'active'
|
query.status = req.query.status || 'active'
|
||||||
const sessions = await Session.find(query)
|
const sessions = await Session.find(query)
|
||||||
res.json(
|
res.json(sessions.map(sessionSummary))
|
||||||
sessions.map(
|
|
||||||
({
|
|
||||||
_id,
|
|
||||||
user,
|
|
||||||
quest,
|
|
||||||
status,
|
|
||||||
progress,
|
|
||||||
createdAt,
|
|
||||||
lastActivityAt,
|
|
||||||
}) => ({
|
|
||||||
_id,
|
|
||||||
user,
|
|
||||||
quest,
|
|
||||||
status,
|
|
||||||
progress,
|
|
||||||
createdAt,
|
|
||||||
lastActivityAt,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
res.status(500).json({ message: err.message })
|
res.status(500).json({ message: err.message })
|
||||||
@@ -59,7 +59,7 @@ export async function createSession(req, res) {
|
|||||||
session.addNewTasks()
|
session.addNewTasks()
|
||||||
|
|
||||||
await newSession.save()
|
await newSession.save()
|
||||||
res.status(201).json(newSession)
|
res.status(201).json(sessionDetail(newSession))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
res.status(400).json({ message: err.message })
|
res.status(400).json({ message: err.message })
|
||||||
@@ -78,7 +78,7 @@ export async function getSessionById(req, res) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
res.json(session)
|
res.json(sessionDetail(session))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
res.status(500).json({ message: err.message })
|
res.status(500).json({ message: err.message })
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user