Skip to content

Commit

Permalink
migrate model solutions to newer version
Browse files Browse the repository at this point in the history
  • Loading branch information
d471061c committed Aug 9, 2023
1 parent 604f50e commit 6e81113
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions services/quizzes/src/pages/api/model-solution.ts
Original file line number Diff line number Diff line change
@@ -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<ModelSolutionQuiz>): void => {
const specRequest = req.body as SpecRequest
Expand All @@ -12,18 +15,16 @@ export default (req: NextApiRequest, res: NextApiResponse<ModelSolutionQuiz>): 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
}

0 comments on commit 6e81113

Please sign in to comment.