diff --git a/src/main/java/com/example/demo/domain/QuestionnairePhase.java b/src/main/java/com/example/demo/domain/QuestionnairePhase.java index a3b36b145ca124aeaeff8f11ee8fd2c5589265c5..aaea9259268db728e8afc21e350da6ac8c6c4931 100644 --- a/src/main/java/com/example/demo/domain/QuestionnairePhase.java +++ b/src/main/java/com/example/demo/domain/QuestionnairePhase.java @@ -9,6 +9,7 @@ import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.OneToMany; import javax.persistence.OrderBy; +import java.util.ArrayList; import java.util.List; @Entity @@ -19,11 +20,11 @@ public class QuestionnairePhase extends AbstractPhase { @OrderBy @OneToMany(mappedBy = "questionnairePhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) - private List<Question> questions; + private List<Question> questions = new ArrayList<>(); @OrderBy @OneToMany(mappedBy = "relatedPhase", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) - private List<QuestionPhaseRelation> questionPhaseRelations; + private List<QuestionPhaseRelation> questionPhaseRelations = new ArrayList<>(); public List<Question> getQuestions() { return questions; diff --git a/src/main/java/com/example/demo/facade/TrainingPhaseFacade.java b/src/main/java/com/example/demo/facade/TrainingPhaseFacade.java index a96e7602cad8f528b5f3bbb52fa35571706fbfea..9c0cad1793359716f236eb16d4380c06fa322544 100644 --- a/src/main/java/com/example/demo/facade/TrainingPhaseFacade.java +++ b/src/main/java/com/example/demo/facade/TrainingPhaseFacade.java @@ -41,7 +41,7 @@ public class TrainingPhaseFacade { } else if (PhaseType.TRAINING.equals(phaseCreateDTO.getPhaseType())) { abstractPhaseDto = trainingPhaseService.createDefaultTrainingPhase(trainingDefinitionId); } else { - abstractPhaseDto = questionnairePhaseService.createDefaultQuestionnairePhase(trainingDefinitionId); + abstractPhaseDto = questionnairePhaseService.createDefaultQuestionnairePhase(trainingDefinitionId, phaseCreateDTO); } abstractPhaseDto.setPhaseType(phaseCreateDTO.getPhaseType()); diff --git a/src/main/java/com/example/demo/service/QuestionnairePhaseService.java b/src/main/java/com/example/demo/service/QuestionnairePhaseService.java index 12e0279714ed30fb5783d0d899eef13a3633c018..7576a6ffa9099fc3ec64199e7f33782ed47f6862 100644 --- a/src/main/java/com/example/demo/service/QuestionnairePhaseService.java +++ b/src/main/java/com/example/demo/service/QuestionnairePhaseService.java @@ -2,8 +2,11 @@ package com.example.demo.service; import com.example.demo.domain.Question; import com.example.demo.domain.QuestionnairePhase; +import com.example.demo.dto.PhaseCreateDTO; import com.example.demo.dto.QuestionnairePhaseDto; import com.example.demo.dto.QuestionnaireUpdateDto; +import com.example.demo.enums.PhaseType; +import com.example.demo.enums.QuestionnaireType; import com.example.demo.mapper.BeanMapper; import com.example.demo.repository.AbstractPhaseRepository; import com.example.demo.repository.QuestionnairePhaseRepository; @@ -26,13 +29,19 @@ public class QuestionnairePhaseService { @Autowired private AbstractPhaseRepository abstractPhaseRepository; - public QuestionnairePhaseDto createDefaultQuestionnairePhase(Long trainingDefinitionId) { + public QuestionnairePhaseDto createDefaultQuestionnairePhase(Long trainingDefinitionId, PhaseCreateDTO phaseCreateDTO) { QuestionnairePhase questionnairePhase =new QuestionnairePhase(); questionnairePhase.setTitle("Title of questionnaire level"); questionnairePhase.setTrainingDefinitionId(trainingDefinitionId); questionnairePhase.setOrder(abstractPhaseRepository.getCurrentMaxOrder(trainingDefinitionId) + 1); + if (PhaseType.QUESTIONNAIRE_ADAPTIVE.equals(phaseCreateDTO.getPhaseType())) { + questionnairePhase.setQuestionnaireType(QuestionnaireType.ADAPTIVE); + } else { + questionnairePhase.setQuestionnaireType(QuestionnaireType.GENERAL); + } + QuestionnairePhase persistedEntity = questionnairePhaseRepository.save(questionnairePhase); return BeanMapper.INSTANCE.toDto(persistedEntity);