feat: add seedResultRange and organize other seeds
This commit is contained in:
@@ -0,0 +1,239 @@
|
||||
import { Choice } from '@/modules/questions/entities/choice.entity';
|
||||
import { QuestionTransition } from '@/modules/questions/entities/question-transition.entity';
|
||||
import { Question } from '@/modules/questions/entities/question.entity';
|
||||
import { QuestionTransitionType } from '@/modules/questions/enums/question-transition-type.enum';
|
||||
import { Test } from '@/modules/tests/entities/test.entity';
|
||||
import { EntityManager } from 'typeorm';
|
||||
|
||||
export async function seedTransitions(
|
||||
manager: EntityManager,
|
||||
savedTest: Test,
|
||||
questions: Record<string, Question>,
|
||||
choices: Record<string, Choice>,
|
||||
) {
|
||||
const transitionRepository = manager.getRepository(QuestionTransition);
|
||||
const { q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12 } = questions;
|
||||
const { q8Yes, q10Yes } = choices;
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------
|
||||
* QUESTION TRANSITIONS
|
||||
* ---------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* START -> Q1
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: null,
|
||||
toQuestion: q1,
|
||||
type: QuestionTransitionType.START,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q1 -> Q2
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q1,
|
||||
toQuestion: q2,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q2 -> Q3
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q2,
|
||||
toQuestion: q3,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q3 -> Q4
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q3,
|
||||
toQuestion: q4,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q4 -> Q5
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q4,
|
||||
toQuestion: q5,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q5 -> Q6
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q5,
|
||||
toQuestion: q6,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q6 -> Q7
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q6,
|
||||
toQuestion: q7,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q7 -> Q8
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q7,
|
||||
toQuestion: q8,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------
|
||||
* Q8 BRANCH
|
||||
* ---------------------------------------------------------
|
||||
*
|
||||
* YES -> Q9
|
||||
* NO -> Q10
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q8,
|
||||
toQuestion: q9,
|
||||
type: QuestionTransitionType.CHOICE,
|
||||
condition: {
|
||||
choiceId: q8Yes.id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q8,
|
||||
toQuestion: q10,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q9 -> Q10
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q9,
|
||||
toQuestion: q10,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* ---------------------------------------------------------
|
||||
* Q10 BRANCH
|
||||
* ---------------------------------------------------------
|
||||
*
|
||||
* YES -> Q11
|
||||
* NO -> Q12
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q10,
|
||||
toQuestion: q11,
|
||||
type: QuestionTransitionType.CHOICE,
|
||||
condition: {
|
||||
choiceId: q10Yes.id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q10,
|
||||
toQuestion: q12,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q11 -> Q12
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q11,
|
||||
toQuestion: q12,
|
||||
type: QuestionTransitionType.DEFAULT,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
|
||||
/*
|
||||
* Q12 -> END
|
||||
*/
|
||||
|
||||
await transitionRepository.save(
|
||||
transitionRepository.create({
|
||||
test: savedTest,
|
||||
fromQuestion: q12,
|
||||
toQuestion: null,
|
||||
type: QuestionTransitionType.END,
|
||||
condition: null,
|
||||
}),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user