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