diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/TaskCreateDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/TaskCreateDTO.java deleted file mode 100644 index ebd5a85ed7e7d731eddf483f84d6c60efa3f8bc9..0000000000000000000000000000000000000000 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/TaskCreateDTO.java +++ /dev/null @@ -1,9 +0,0 @@ -package cz.muni.ics.kypo.training.adaptive.dto; - -public class TaskCreateDTO extends TaskUpdateDTO { - - @Override - public String toString() { - return "GameLevelCreateDto{} " + super.toString(); - } -} diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/mapper/BeanMapper.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/mapper/BeanMapper.java index 0388811ea4229fb42cb369586340fccbf6529746..f1951b28a957a663e1caaaefe09ef679b4aa04c7 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/mapper/BeanMapper.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/mapper/BeanMapper.java @@ -20,7 +20,6 @@ import cz.muni.ics.kypo.training.adaptive.dto.QuestionRequiredIdDTO; import cz.muni.ics.kypo.training.adaptive.dto.QuestionUpdateDTO; import cz.muni.ics.kypo.training.adaptive.dto.QuestionnairePhaseDTO; import cz.muni.ics.kypo.training.adaptive.dto.QuestionnaireUpdateDTO; -import cz.muni.ics.kypo.training.adaptive.dto.TaskCreateDTO; import cz.muni.ics.kypo.training.adaptive.dto.TaskDTO; import cz.muni.ics.kypo.training.adaptive.dto.TaskUpdateDTO; import cz.muni.ics.kypo.training.adaptive.dto.TrainingPhaseDTO; @@ -58,8 +57,6 @@ public interface BeanMapper { Task toEntity(TaskDTO taskDto); - Task toEntity(TaskCreateDTO taskCreateDto); - Task toEntity(TaskUpdateDTO taskUpdateDto); @Mapping(target = "phaseType", constant = "INFO") diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionChoiceRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionChoiceRepository.java deleted file mode 100644 index 88afad95e4438ecba70d3db7b6a7d604fc8ad34c..0000000000000000000000000000000000000000 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionChoiceRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package cz.muni.ics.kypo.training.adaptive.repository; - -import cz.muni.ics.kypo.training.adaptive.domain.QuestionChoice; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; - -public interface QuestionChoiceRepository extends JpaRepository<QuestionChoice, Long> { - - @Query("SELECT COALESCE(MAX(q.order), -1) FROM QuestionChoice q WHERE q.question.id = :questionId") - Integer getCurrentMaxOrder(@Param("questionId") Long questionId); - - @Modifying - @Query("UPDATE QuestionChoice q SET q.order = q.order - 1 " + - "WHERE q.question.id = :questionId " + - "AND q.order > :order ") - void decreaseOrderAfterQuestionChoiceWasDeleted(@Param("order") int order, @Param("questionId") Long questionId); - -} diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionRepository.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionRepository.java index 4add485bc30e693211660b6786a5231b27c6f157..9261b373f4e1dd00b914d72ac18f8fa3552a6da6 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionRepository.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/repository/QuestionRepository.java @@ -2,18 +2,6 @@ package cz.muni.ics.kypo.training.adaptive.repository; import cz.muni.ics.kypo.training.adaptive.domain.Question; import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; public interface QuestionRepository extends JpaRepository<Question, Long> { - - @Query("SELECT COALESCE(MAX(q.order), -1) FROM Question q WHERE q.questionnairePhase.id = :questionnaireId") - Integer getCurrentMaxOrder(@Param("questionnaireId") Long questionnaireId); - - @Modifying - @Query("UPDATE Question q SET q.order = q.order - 1 " + - "WHERE q.questionnairePhase.id = :questionnairePhaseIdLevelId " + - "AND q.order > :order ") - void decreaseOrderAfterQuestionWasDeleted(@Param("order") int order, @Param("questionnairePhaseIdLevelId") Long questionnairePhaseIdLevelId); } diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionChoiceService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionChoiceService.java deleted file mode 100644 index 4e9bd6fd4d82a9df10039b45dd9fc308934af9ea..0000000000000000000000000000000000000000 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionChoiceService.java +++ /dev/null @@ -1,74 +0,0 @@ -package cz.muni.ics.kypo.training.adaptive.service; - -import cz.muni.ics.kypo.training.adaptive.domain.Question; -import cz.muni.ics.kypo.training.adaptive.domain.QuestionChoice; -import cz.muni.ics.kypo.training.adaptive.dto.QuestionChoiceDTO; -import cz.muni.ics.kypo.training.adaptive.mapper.BeanMapper; -import cz.muni.ics.kypo.training.adaptive.repository.QuestionChoiceRepository; -import cz.muni.ics.kypo.training.adaptive.repository.QuestionRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Optional; - -@Service -public class QuestionChoiceService { - - private static final Logger LOG = LoggerFactory.getLogger(QuestionChoiceService.class); - - @Autowired - private QuestionRepository questionRepository; - - @Autowired - private QuestionChoiceRepository questionChoiceRepository; - - public QuestionChoiceDTO createDefaultQuestionChoice(Long questionId) { - Optional<Question> question = questionRepository.findById(questionId); - if (question.isEmpty()) { - // TODO return 404 - return null; - } - - QuestionChoice questionChoice = new QuestionChoice(); - questionChoice.setText("Title of question choice"); - questionChoice.setQuestion(question.get()); - questionChoice.setOrder(questionChoiceRepository.getCurrentMaxOrder(questionId) + 1); - - QuestionChoice persistedEntity = questionChoiceRepository.save(questionChoice); - - return BeanMapper.INSTANCE.toDto(persistedEntity); - } - - public QuestionChoiceDTO updateQuestionChoice(QuestionChoice questionChoice) { - Optional<QuestionChoice> persistedQuestionChoice = questionChoiceRepository.findById(questionChoice.getId()); - - if (persistedQuestionChoice.isEmpty()) { - // TODO return 404 - LOG.error("No question choice found with ID {}.", questionChoice.getId()); - return new QuestionChoiceDTO(); - } - - questionChoice.setQuestion(persistedQuestionChoice.get().getQuestion()); - questionChoice.setOrder(persistedQuestionChoice.get().getOrder()); - - QuestionChoice savedEntity = questionChoiceRepository.save(questionChoice); - - return BeanMapper.INSTANCE.toDto(savedEntity); - } - - public void deleteQuestionChoice(Long questionChoiceId) { - Optional<QuestionChoice> questionChoice = questionChoiceRepository.findById(questionChoiceId); - - if (questionChoice.isEmpty()) { - // TODO throw a proper exception - return; - } - - int questionChoiceOrder = questionChoice.get().getOrder(); - questionChoiceRepository.decreaseOrderAfterQuestionChoiceWasDeleted(questionChoiceOrder, questionChoice.get().getQuestion().getId()); - - questionChoiceRepository.delete(questionChoice.get()); - } -} diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionService.java deleted file mode 100644 index 4fb72932377fb0d1fc86349e77540a4af00999e9..0000000000000000000000000000000000000000 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/QuestionService.java +++ /dev/null @@ -1,77 +0,0 @@ -package cz.muni.ics.kypo.training.adaptive.service; - -import cz.muni.ics.kypo.training.adaptive.domain.Question; -import cz.muni.ics.kypo.training.adaptive.domain.QuestionnairePhase; -import cz.muni.ics.kypo.training.adaptive.dto.QuestionDTO; -import cz.muni.ics.kypo.training.adaptive.enums.QuestionType; -import cz.muni.ics.kypo.training.adaptive.mapper.BeanMapper; -import cz.muni.ics.kypo.training.adaptive.repository.QuestionRepository; -import cz.muni.ics.kypo.training.adaptive.repository.QuestionnairePhaseRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Optional; - -@Service -public class QuestionService { - - private static final Logger LOG = LoggerFactory.getLogger(QuestionService.class); - - @Autowired - private QuestionnairePhaseRepository questionnairePhaseRepository; - - @Autowired - private QuestionRepository questionRepository; - - public QuestionDTO createDefaultQuestion(Long questionnaireId, QuestionType questionType) { - Optional<QuestionnairePhase> questionnairePhase = questionnairePhaseRepository.findById(questionnaireId); - if (questionnairePhase.isEmpty()) { - // TODO return 404 - return null; - } - - Question question = new Question(); - question.setText("Title of question"); - question.setQuestionType(questionType); - question.setQuestionnairePhase(questionnairePhase.get()); - question.setOrder(questionRepository.getCurrentMaxOrder(questionnaireId) + 1); - - Question persistedEntity = questionRepository.save(question); - - return BeanMapper.INSTANCE.toDto(persistedEntity); - } - - public QuestionDTO updateQuestion(Question question) { - Optional<Question> persistedQuestion = questionRepository.findById(question.getId()); - - if (persistedQuestion.isEmpty()) { - // TODO return 404 - LOG.error("No question found with ID {}.", question.getId()); - return new QuestionDTO(); - } - - question.setChoices(persistedQuestion.get().getChoices()); - question.setQuestionnairePhase(persistedQuestion.get().getQuestionnairePhase()); - question.setOrder(persistedQuestion.get().getOrder()); - - Question savedEntity = questionRepository.save(question); - - return BeanMapper.INSTANCE.toDto(savedEntity); - } - - public void deleteQuestion(Long questionId) { - Optional<Question> question = questionRepository.findById(questionId); - - if (question.isEmpty()) { - // TODO throw a proper exception - return; - } - - int questionOrder = question.get().getOrder(); - questionRepository.decreaseOrderAfterQuestionWasDeleted(questionOrder, question.get().getQuestionnairePhase().getId()); - - questionRepository.delete(question.get()); - } -} diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java index 4f802bc89d0a7b1ed911860a6f5f18d7da495b57..2e1b9db6dd2ebae0767408f064b24ed2a3ffac42 100644 --- a/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java +++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/service/TaskService.java @@ -2,7 +2,6 @@ package cz.muni.ics.kypo.training.adaptive.service; import cz.muni.ics.kypo.training.adaptive.domain.Task; import cz.muni.ics.kypo.training.adaptive.domain.TrainingPhase; -import cz.muni.ics.kypo.training.adaptive.dto.TaskCreateDTO; import cz.muni.ics.kypo.training.adaptive.dto.TaskDTO; import cz.muni.ics.kypo.training.adaptive.dto.TaskUpdateDTO; import cz.muni.ics.kypo.training.adaptive.mapper.BeanMapper; @@ -71,15 +70,6 @@ public class TaskService { return BeanMapper.INSTANCE.toDto(persistedEntity); } - - public TaskDTO createTask(TaskCreateDTO taskCreateDto) { - Task task = BeanMapper.INSTANCE.toEntity(taskCreateDto); - - Task persistedEntity = taskRepository.save(task); - - return BeanMapper.INSTANCE.toDto(persistedEntity); - } - public TaskDTO getTask(Long trainingDefinitionId, Long phaseId, Long taskId) { Task task = taskRepository.findById(taskId) .orElseThrow(() -> new RuntimeException("Task was not found"));