feat(education): complete student core loop delivery

This commit is contained in:
2026-07-28 14:58:14 +08:00
parent 93f02df68c
commit ce02f8acb4
50 changed files with 1536 additions and 64 deletions

View File

@@ -0,0 +1,34 @@
'use strict';
const API_PREFIX = '/app-api';
function buildRequest(path, options = {}, accessToken = '') {
const headers = {
Accept: 'application/json',
...(options.body ? { 'Content-Type': 'application/json' } : {}),
...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}),
};
return { url: `${API_PREFIX}${path}`, options: { ...options, headers } };
}
function answerCommand(session, questionSequence, selectedAnswer, idempotencyKey, clientSequence) {
return {
sessionId: session.id,
questionSequence,
selectedAnswer,
idempotencyKey,
clientSequence,
expectedSessionVersion: session.sessionVersion,
};
}
function applyAnswerResult(session, result) {
return {
...session,
sessionVersion: result.sessionVersion,
serverVersion: result.serverVersion ?? result.sessionVersion,
acceptedSequence: Math.max(session.acceptedSequence || 0, result.acceptedSequence || 0),
};
}
module.exports = { buildRequest, answerCommand, applyAnswerResult };