From 6e81113c1ab319dcd5e6470ffb6c00e50ff28599 Mon Sep 17 00:00:00 2001 From: d471061c Date: Wed, 9 Aug 2023 15:57:00 +0300 Subject: [PATCH] migrate model solutions to newer version --- .../quizzes/src/pages/api/model-solution.ts | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/services/quizzes/src/pages/api/model-solution.ts b/services/quizzes/src/pages/api/model-solution.ts index 039f9983c47e..f47344501dd9 100644 --- a/services/quizzes/src/pages/api/model-solution.ts +++ b/services/quizzes/src/pages/api/model-solution.ts @@ -1,8 +1,11 @@ /* eslint-disable i18next/no-literal-string */ import { NextApiRequest, NextApiResponse } from "next" -import { ModelSolutionQuiz, Quiz } from "../../../types/types" +import { ModelSolutionQuiz } from "../../../types/quizTypes/modelSolutionSpec" +import { Quiz } from "../../../types/types" import { SpecRequest } from "../../shared-module/bindings" +import { isOldQuiz } from "../../util/migration/migrationSettings" +import migrateModelSolutionSpecQuiz from "../../util/migration/modelSolutionSpecQuiz" export default (req: NextApiRequest, res: NextApiResponse): void => { const specRequest = req.body as SpecRequest @@ -12,18 +15,16 @@ export default (req: NextApiRequest, res: NextApiResponse): v } const modelSolution = createModelSolution(quiz) - return res.status(200).json(modelSolution) } -function createModelSolution(quiz: Quiz): ModelSolutionQuiz { - const modelSolution: ModelSolutionQuiz = quiz - - // Let's never leak validity regex to students because it makes it too easy to figure out how to "trick" the check. - modelSolution.items.forEach((item) => { - // @ts-ignore: the field is there because of the cast above - delete item.validityRegex - }) +function createModelSolution(quiz: Quiz | ModelSolutionQuiz): ModelSolutionQuiz { + let modelSolution: ModelSolutionQuiz | null = null + if (isOldQuiz(quiz)) { + modelSolution = migrateModelSolutionSpecQuiz(quiz as Quiz) + } else { + modelSolution = quiz as ModelSolutionQuiz + } - return modelSolution + return modelSolution as ModelSolutionQuiz }