forked from wangziqi/ruoyi-vue-pro
35 lines
1018 B
JavaScript
35 lines
1018 B
JavaScript
'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 };
|