diff --git a/src/main/java/com/example/demo/controller/AdaptiveTrainingDefinitionsRestController.java b/src/main/java/com/example/demo/controller/AdaptiveTrainingDefinitionsRestController.java index 3ba8c1b8161b4b78ccbd01ca66d2f2838a1c7ca8..47fa0d631eb4dfea0845e0ed79948746c4d43c84 100644 --- a/src/main/java/com/example/demo/controller/AdaptiveTrainingDefinitionsRestController.java +++ b/src/main/java/com/example/demo/controller/AdaptiveTrainingDefinitionsRestController.java @@ -1,5 +1,6 @@ package com.example.demo.controller; +import com.example.demo.domain.QuestionnaireLevel; import com.example.demo.dto.BaseLevelDto; import com.example.demo.dto.PhaseLevelUpdateDto; import com.example.demo.dto.QuestionChoiceDto; @@ -9,6 +10,7 @@ import com.example.demo.dto.QuestionUpdateDto; import com.example.demo.dto.TaskUpdateDto; import com.example.demo.dto.InfoLevelUpdateDto; import com.example.demo.enums.LevelType; +import com.example.demo.enums.QuestionType; import com.example.demo.service.LevelOperationsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -191,11 +193,12 @@ public class AdaptiveTrainingDefinitionsRestController { @ApiResponse(code = 200, message = "Question created"), @ApiResponse(code = 500, message = "Unexpected application error") }) - @PostMapping(path = "/questionnaires/{questionnaireId}") + @PostMapping(path = "/questionnaires/{questionnaireId}/{questionType}") public QuestionDto createQuestion( - @ApiParam(value = "Questionnaire ID", required = true) @PathVariable(name = "questionnaireId") Long questionnaireId) { + @ApiParam(value = "Questionnaire ID", required = true) @PathVariable(name = "questionnaireId") Long questionnaireId, + @ApiParam(value = "Questionnaire Type", allowableValues = "FFQ, MCQ, EMI", required = true) @PathVariable(name = "questionType") QuestionType questionType) { - return levelOperationsService.createQuestion(questionnaireId); + return levelOperationsService.createQuestion(questionnaireId, questionType); } @ApiOperation(httpMethod = "POST", diff --git a/src/main/java/com/example/demo/service/LevelOperationsService.java b/src/main/java/com/example/demo/service/LevelOperationsService.java index f533d9987c073e2b1ae4b087e285eb93c81efbc4..ae349743e9984d99f43fe21a1e85259ad02c6552 100644 --- a/src/main/java/com/example/demo/service/LevelOperationsService.java +++ b/src/main/java/com/example/demo/service/LevelOperationsService.java @@ -16,6 +16,7 @@ import com.example.demo.dto.TaskDto; import com.example.demo.dto.TaskUpdateDto; import com.example.demo.dto.InfoLevelUpdateDto; import com.example.demo.enums.LevelType; +import com.example.demo.enums.QuestionType; import com.example.demo.mapper.BeanMapper; import com.example.demo.repository.BaseLevelRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -144,8 +145,8 @@ public class LevelOperationsService { taskService.updateTask(task); } - public QuestionDto createQuestion(Long questionnaireId) { - QuestionDto createdQuestion = questionService.createDefaultQuestion(questionnaireId); + public QuestionDto createQuestion(Long questionnaireId, QuestionType questionType) { + QuestionDto createdQuestion = questionService.createDefaultQuestion(questionnaireId, questionType); return createdQuestion; } diff --git a/src/main/java/com/example/demo/service/QuestionService.java b/src/main/java/com/example/demo/service/QuestionService.java index a43bbc9c47b45ea2f024782538affcf8f628fe34..1c60d5866dfed60f6a985a9050bf8756bdfcfe22 100644 --- a/src/main/java/com/example/demo/service/QuestionService.java +++ b/src/main/java/com/example/demo/service/QuestionService.java @@ -25,7 +25,7 @@ public class QuestionService { @Autowired private QuestionRepository questionRepository; - public QuestionDto createDefaultQuestion(Long questionnaireId) { + public QuestionDto createDefaultQuestion(Long questionnaireId, QuestionType questionType) { Optional<QuestionnaireLevel> questionnaireLevel = questionnaireLevelRepository.findById(questionnaireId); if (questionnaireLevel.isEmpty()) { // TODO return 404 @@ -34,7 +34,7 @@ public class QuestionService { Question question = new Question(); question.setText("Title of question"); - question.setQuestionType(QuestionType.MCQ); + question.setQuestionType(questionType); question.setQuestionnaireLevel(questionnaireLevel.get()); question.setOrder(questionRepository.getCurrentMaxOrder(questionnaireId) + 1);