sto-k-odnomu/backend/src/utils/question-utils.ts

40 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-01-08 20:14:58 +00:00
import { randomUUID } from 'crypto';
interface Answer {
id?: string;
text: string;
points: number;
}
interface Question {
id?: string;
text?: string;
question?: string; // Поддержка обоих вариантов названия поля
answers: Answer[];
}
/**
* Добавляет UUID к вопросам и ответам, если их нет
* @param questions - Массив вопросов
* @returns Массив вопросов с добавленными UUID
*/
export function ensureQuestionIds(questions: Question[]): Question[] {
return questions.map((question) => {
const questionId = question.id || randomUUID();
const questionText = question.text || question.question || '';
const answersWithIds = question.answers.map((answer) => ({
...answer,
id: answer.id || randomUUID(),
}));
return {
...question,
id: questionId,
text: questionText,
question: questionText, // Сохраняем оба поля для совместимости
answers: answersWithIds,
};
});
}