'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 };