From 0a7d79e927c8d296eb636d28410f10195cc3398b Mon Sep 17 00:00:00 2001
From: Jan Tymel <410388@mail.muni.cz>
Date: Tue, 16 Feb 2021 07:33:38 +0100
Subject: [PATCH] Add swagger doc to DTOs where it was missing, remove unused
 classes

---
 .../adaptive/dto/AbstractPhaseDTO.java        |  8 ++
 .../adaptive/dto/info/InfoPhaseDTO.java       |  2 +
 .../questionnaire/QuestionRequiredIdDTO.java  | 20 -----
 .../dto/questionnaire/QuestionUpdateDTO.java  | 85 -------------------
 .../questionnaire/QuestionnairePhaseDTO.java  |  6 ++
 .../dto/training/DecisionMatrixRowDTO.java    | 16 ++++
 .../adaptive/dto/training/TaskDTO.java        | 19 +++++
 .../dto/training/TrainingPhaseDTO.java        |  9 ++
 .../dto/training/TrainingPhaseUpdateDTO.java  |  4 +-
 .../training/adaptive/mapper/BeanMapper.java  |  6 --
 10 files changed, 63 insertions(+), 112 deletions(-)
 delete mode 100644 src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionRequiredIdDTO.java
 delete mode 100644 src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionUpdateDTO.java

diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/AbstractPhaseDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/AbstractPhaseDTO.java
index 22ac1324..c49c0a51 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/AbstractPhaseDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/AbstractPhaseDTO.java
@@ -1,12 +1,20 @@
 package cz.muni.ics.kypo.training.adaptive.dto;
 
 import cz.muni.ics.kypo.training.adaptive.enums.PhaseType;
+import io.swagger.annotations.ApiModelProperty;
 
 public abstract class AbstractPhaseDTO {
 
+    @ApiModelProperty(value = "ID of task", required = true, example = "1")
     private Long id;
+
+    @ApiModelProperty(value = "Short description of phase", required = true, example = "Training Phase 1")
     private String title;
+
+    @ApiModelProperty(value = "Order of phase in a training definition", required = true, example = "1")
     private Integer order;
+
+    @ApiModelProperty(value = "Type of phase", required = true, allowableValues = "QUESTIONNAIRE,INFO,TRAINING", example = "TRAINING")
     private PhaseType phaseType;
 
     public Long getId() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/info/InfoPhaseDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/info/InfoPhaseDTO.java
index 9acc05a3..e0bb00a0 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/info/InfoPhaseDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/info/InfoPhaseDTO.java
@@ -1,9 +1,11 @@
 package cz.muni.ics.kypo.training.adaptive.dto.info;
 
 import cz.muni.ics.kypo.training.adaptive.dto.AbstractPhaseDTO;
+import io.swagger.annotations.ApiModelProperty;
 
 public class InfoPhaseDTO extends AbstractPhaseDTO {
 
+    @ApiModelProperty(value = "Short description of info phase", required = true, example = "Info phase title")
     private String content;
 
     public String getContent() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionRequiredIdDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionRequiredIdDTO.java
deleted file mode 100644
index 2f156eeb..00000000
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionRequiredIdDTO.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package cz.muni.ics.kypo.training.adaptive.dto.questionnaire;
-
-import io.swagger.annotations.ApiModelProperty;
-
-import javax.validation.constraints.NotNull;
-
-public class QuestionRequiredIdDTO extends AbstractQuestionDTO {
-
-    @ApiModelProperty(value = "Question ID. Leave blank if a new question is added", required = true, example = "1")
-    @NotNull(message = "Question ID must be specified")
-    private Long id;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-}
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionUpdateDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionUpdateDTO.java
deleted file mode 100644
index a535715b..00000000
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionUpdateDTO.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package cz.muni.ics.kypo.training.adaptive.dto.questionnaire;
-
-import cz.muni.ics.kypo.training.adaptive.enums.QuestionType;
-
-import java.util.List;
-
-public class QuestionUpdateDTO {
-
-    private Long id;
-    private QuestionType questionType;
-    private String text;
-    private Integer points;
-    private Integer penalty;
-    private boolean required;
-    private List<Long> relatedPhasesId;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public QuestionType getQuestionType() {
-        return questionType;
-    }
-
-    public void setQuestionType(QuestionType questionType) {
-        this.questionType = questionType;
-    }
-
-    public String getText() {
-        return text;
-    }
-
-    public void setText(String text) {
-        this.text = text;
-    }
-
-    public Integer getPoints() {
-        return points;
-    }
-
-    public void setPoints(Integer points) {
-        this.points = points;
-    }
-
-    public Integer getPenalty() {
-        return penalty;
-    }
-
-    public void setPenalty(Integer penalty) {
-        this.penalty = penalty;
-    }
-
-    public boolean isRequired() {
-        return required;
-    }
-
-    public void setRequired(boolean required) {
-        this.required = required;
-    }
-
-    public List<Long> getRelatedPhasesId() {
-        return relatedPhasesId;
-    }
-
-    public void setRelatedPhasesId(List<Long> relatedPhasesId) {
-        this.relatedPhasesId = relatedPhasesId;
-    }
-
-    @Override
-    public String toString() {
-        return "QuestionUpdateDto{" +
-                "id=" + id +
-                ", questionType=" + questionType +
-                ", text='" + text + '\'' +
-                ", points=" + points +
-                ", penalty=" + penalty +
-                ", required=" + required +
-                ", relatedPhasesId=" + relatedPhasesId +
-                '}';
-    }
-}
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionnairePhaseDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionnairePhaseDTO.java
index 9d41ff5a..acaffe5b 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionnairePhaseDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/questionnaire/QuestionnairePhaseDTO.java
@@ -2,13 +2,19 @@ package cz.muni.ics.kypo.training.adaptive.dto.questionnaire;
 
 import cz.muni.ics.kypo.training.adaptive.dto.AbstractPhaseDTO;
 import cz.muni.ics.kypo.training.adaptive.enums.QuestionnaireType;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 
 public class QuestionnairePhaseDTO extends AbstractPhaseDTO {
 
+    @ApiModelProperty(value = "List of questions associated with the questionnaire phase")
     private List<QuestionDTO> questions;
+
+    @ApiModelProperty(value = "Type of questionnaire phase", allowableValues = "ADAPTIVE,GENERAL", example = "ADAPTIVE")
     private QuestionnaireType questionnaireType;
+
+    @ApiModelProperty(value = "List of relations between questions and a training phase")
     private List<QuestionPhaseRelationDTO> phaseRelations;
 
     public List<QuestionDTO> getQuestions() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/DecisionMatrixRowDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/DecisionMatrixRowDTO.java
index ad3e6999..ec7a0b37 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/DecisionMatrixRowDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/DecisionMatrixRowDTO.java
@@ -1,12 +1,28 @@
 package cz.muni.ics.kypo.training.adaptive.dto.training;
 
+import io.swagger.annotations.ApiModelProperty;
+
 public class DecisionMatrixRowDTO {
+
+    @ApiModelProperty(value = "ID of decision matrix row", required = true, example = "1")
     private long id;
+
+    @ApiModelProperty(value = "Order of row in a decision matrix", required = true, example = "1")
     private int order;
+
+    @ApiModelProperty(value = "It determines how important the answers of the questions in questionnaires are", required = true, example = "0.5")
     private double assessmentAnswered;
+
+    @ApiModelProperty(value = "It determines how important it is whether the player used the keyword", required = true, example = "0.5")
     private double keywordUsed;
+
+    @ApiModelProperty(value = "It determines how important it is whether the player completed the task in time", required = true, example = "0.5")
     private double completedInTime;
+
+    @ApiModelProperty(value = "It determines how important it is whether the player displayed the solution of the task they were solving", required = true, example = "0.5")
     private double solutionDisplayed;
+
+    @ApiModelProperty(value = "It determines how important the number of wrong answers are", required = true, example = "0.5")
     private double wrongAnswers;
 
     public long getId() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java
index cc10eee1..251aabf0 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TaskDTO.java
@@ -1,15 +1,34 @@
 package cz.muni.ics.kypo.training.adaptive.dto.training;
 
+import io.swagger.annotations.ApiModelProperty;
+
 public class TaskDTO {
 
+    @ApiModelProperty(value = "ID of task", required = true, example = "1")
     private Long id;
+
+    @ApiModelProperty(value = "Short description of task", required = true, example = "Task title")
     private String title;
+
+    @ApiModelProperty(value = "Order of task in the training phase", required = true, example = "1")
     private Integer order;
+
+    @ApiModelProperty(value = "The information that are displayed to a player", required = true, example = "Capture the flag")
     private String content;
+
+    @ApiModelProperty(value = "Keyword that must be found in the task. Necessary in order to get to the next phase", required = true, example = "secretFlag")
     private String answer;
+
+    @ApiModelProperty(value = "Description how to get the answer", required = true, example = "Open secret.txt")
     private String solution;
+
+    @ApiModelProperty(value = "It defines the allowed number of incorrect answers submitted by the player", required = true, example = "5")
     private int incorrectAnswerLimit;
+
+    @ApiModelProperty(value = "It defines whether the sandbox can be modified", example = "true")
     private boolean modifySandbox;
+
+    @ApiModelProperty(value = "It defines the expected duration of sandbox change defined in seconds", example = "15")
     private int sandboxChangeExpectedDuration;
 
     public Long getId() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseDTO.java
index 3cf60665..ffe22382 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseDTO.java
@@ -1,17 +1,26 @@
 package cz.muni.ics.kypo.training.adaptive.dto.training;
 
 import cz.muni.ics.kypo.training.adaptive.dto.AbstractPhaseDTO;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class TrainingPhaseDTO extends AbstractPhaseDTO {
 
+    @ApiModelProperty(value = "Estimated time (minutes) taken by the player to solve the training phase", example = "20")
     private int estimatedDuration;
+
+    @ApiModelProperty(value = "Maximal number of allowed commands provided by played", required = true, example = "10")
     private int allowedCommands;
+
+    @ApiModelProperty(value = "Maximal number of allowed wrong answers provided by played", required = true, example = "10")
     private int allowedWrongAnswers;
+
+    @ApiModelProperty(value = "Tasks associated with the training phase", required = true)
     private List<TaskDTO> tasks = new ArrayList<>();
 
+    @ApiModelProperty(value = "Decision matrix associated with the training phase", required = true)
     private List<DecisionMatrixRowDTO> decisionMatrix;
 
     public int getEstimatedDuration() {
diff --git a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseUpdateDTO.java b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseUpdateDTO.java
index c1ca1f61..5aa47bc7 100644
--- a/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseUpdateDTO.java
+++ b/src/main/java/cz/muni/ics/kypo/training/adaptive/dto/training/TrainingPhaseUpdateDTO.java
@@ -21,9 +21,11 @@ public class TrainingPhaseUpdateDTO {
     private Integer allowedCommands;
 
     @ApiModelProperty(value = "Estimated time (minutes) taken by the player to solve the training phase", example = "20")
-    @NotNull(message = "Estimated duration of phase task must be set")
+    @NotNull(message = "Estimated duration of training phase must be set")
     private Integer estimatedDuration;
 
+    @ApiModelProperty(value = "Decision matrix associated with the training phase", required = true)
+    @NotNull(message = "Decision matrix of training phase must be set")
     private List<DecisionMatrixRowDTO> decisionMatrix;
 
     public String getTitle() {
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 192e806c..391cab66 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
@@ -15,8 +15,6 @@ import cz.muni.ics.kypo.training.adaptive.dto.info.InfoPhaseUpdateDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionChoiceDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionPhaseRelationDTO;
-import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionRequiredIdDTO;
-import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionUpdateDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionnairePhaseDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.questionnaire.QuestionnaireUpdateDTO;
 import cz.muni.ics.kypo.training.adaptive.dto.training.DecisionMatrixRowDTO;
@@ -84,10 +82,6 @@ public interface BeanMapper {
 
     Question toEntity(QuestionDTO questionDto);
 
-    Question toEntity(QuestionRequiredIdDTO questionDto);
-
-    Question toEntity(QuestionUpdateDTO questionUpdateDto);
-
     QuestionDTO toDto(Question question);
 
     @Mapping(target = "questionPhaseRelations", source = "phaseRelations")
-- 
GitLab