From 6332bda92d8dc7491698b157f86364894863141d Mon Sep 17 00:00:00 2001 From: Mohamed Sami Jarmoud <mohamed.jarmoud@mni.thm.de> Date: Fri, 5 Jun 2015 06:47:01 +0200 Subject: [PATCH] add swagger documentation to models --- .../java/de/thm/arsnova/entities/Answer.java | 21 ++++++++ .../arsnova/entities/InterposedQuestion.java | 17 ++++++ .../entities/InterposedReadingCount.java | 7 +++ .../entities/LearningProgressOptions.java | 5 ++ .../thm/arsnova/entities/PossibleAnswer.java | 8 +++ .../de/thm/arsnova/entities/Question.java | 54 ++++++++++++++++++- .../java/de/thm/arsnova/entities/Session.java | 32 ++++++++++- .../thm/arsnova/entities/SessionFeature.java | 8 +++ .../de/thm/arsnova/entities/SessionInfo.java | 17 ++++++ .../de/thm/arsnova/entities/Statistics.java | 17 ++++++ .../arsnova/entities/transport/Answer.java | 8 ++- .../transport/ImportExportSession.java | 22 ++++++++ .../transport/InterposedQuestion.java | 23 ++++++-- .../transport/LearningProgressValues.java | 8 +++ 14 files changed, 238 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/thm/arsnova/entities/Answer.java b/src/main/java/de/thm/arsnova/entities/Answer.java index 4aa859228..f4ea32b6c 100644 --- a/src/main/java/de/thm/arsnova/entities/Answer.java +++ b/src/main/java/de/thm/arsnova/entities/Answer.java @@ -18,12 +18,15 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * Both a regular (single choice, evaluation, etc.) as well as a freetext answer. * * This class has additional fields to transport generated answer statistics. */ +@ApiModel( value = "Answer" , description = "the Answer API") public class Answer { private String _id; @@ -50,6 +53,7 @@ public class Answer { this.type = "skill_question_answer"; } + @ApiModelProperty(position = 1, required = true, value = "used to display _id") public final String get_id() { return _id; } @@ -58,6 +62,7 @@ public class Answer { this._id = _id; } + @ApiModelProperty(position = 2, required = true, value = "used to display _rev") public final String get_rev() { return _rev; } @@ -66,6 +71,7 @@ public class Answer { this._rev = _rev; } + @ApiModelProperty(position = 3, required = true, value = "used to display type") public final String getType() { return type; } @@ -74,6 +80,7 @@ public class Answer { this.type = type; } + @ApiModelProperty(position = 4, required = true, value = "used to display session id") public final String getSessionId() { return sessionId; } @@ -82,6 +89,7 @@ public class Answer { this.sessionId = sessionId; } + @ApiModelProperty(position = 5, required = true, value = "used to display question id") public final String getQuestionId() { return questionId; } @@ -90,6 +98,7 @@ public class Answer { this.questionId = questionId; } + @ApiModelProperty(position = 6, required = true, value = "used to display answer text") public final String getAnswerText() { return answerText; } @@ -98,6 +107,7 @@ public class Answer { this.answerText = answerText; } + @ApiModelProperty(position = 7, required = true, value = "used to display answer subject") public final String getAnswerSubject() { return answerSubject; } @@ -106,6 +116,7 @@ public class Answer { this.answerSubject = answerSubject; } + @ApiModelProperty(position = 8, required = true, value = "used to displaypi round ") public int getPiRound() { return piRound; } @@ -117,11 +128,13 @@ public class Answer { /* TODO: use JsonViews instead of JsonIgnore when supported by Spring (4.1) * http://wiki.fasterxml.com/JacksonJsonViews * https://jira.spring.io/browse/SPR-7156 */ + @ApiModelProperty(position = 9, required = true, value = "used to display user") @JsonIgnore public final String getUser() { return user; } + @ApiModelProperty(position = 10, required = true, value = "used to display answer image") @JsonIgnore public String getAnswerImage() { return answerImage; @@ -131,6 +144,7 @@ public class Answer { this.answerImage = answerImage; } + @ApiModelProperty(position = 11, required = true, value = "used to display answer thumbnail image") public String getAnswerThumbnailImage() { return answerThumbnailImage; } @@ -143,6 +157,7 @@ public class Answer { this.user = user; } + @ApiModelProperty(position = 12, required = true, value = "used to display timestamp") public long getTimestamp() { return timestamp; } @@ -151,6 +166,7 @@ public class Answer { this.timestamp = timestamp; } + @ApiModelProperty(position = 13, required = true, value = "read") public boolean isRead() { return read; } @@ -159,6 +175,7 @@ public class Answer { this.read = read; } + @ApiModelProperty(position = 14, required = true, value = "used to display answer count") public final int getAnswerCount() { return answerCount; } @@ -167,6 +184,7 @@ public class Answer { this.answerCount = answerCount; } + @ApiModelProperty(position = 15, required = true, value = "used to display abstention") public boolean isAbstention() { return abstention; } @@ -175,6 +193,7 @@ public class Answer { this.abstention = abstention; } + @ApiModelProperty(position = 16, required = true, value = "used to display abtention count ") public int getAbstentionCount() { return abstentionCount; } @@ -183,6 +202,7 @@ public class Answer { this.abstentionCount = abstentionCount; } + @ApiModelProperty(position = 17, required = true, value = "used to display question variant") public String getQuestionVariant() { return questionVariant; } @@ -191,6 +211,7 @@ public class Answer { this.questionVariant = questionVariant; } + @ApiModelProperty(position = 18, required = true, value = "used to display question value") public int getQuestionValue() { return questionValue; } diff --git a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java index 807297687..e3f6a7781 100644 --- a/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java +++ b/src/main/java/de/thm/arsnova/entities/InterposedQuestion.java @@ -18,10 +18,13 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * A question the user is asking the teacher. Also known as feedback or audience question. */ +@ApiModel( value = "audiencequestion" , description = "the Interposed Question API") public class InterposedQuestion { private String _id; @@ -39,48 +42,62 @@ public class InterposedQuestion { private boolean read; private String creator; + @ApiModelProperty(position = 1, required = true, value = "used to display question id") public String get_id() { return _id; } public void set_id(String _id) { this._id = _id; } + @ApiModelProperty(position = 2, required = true, value = "used to display rev") public String get_rev() { return _rev; } public void set_rev(String _rev) { this._rev = _rev; } + + @ApiModelProperty(position = 3, required = true, value = "is read") public boolean isRead() { return read; } public void setRead(boolean read) { this.read = read; } + + @ApiModelProperty(position = 4, required = true, value = "used to display The type") public String getType() { return type; } public void setType(String type) { this.type = type; } + + @ApiModelProperty(position = 5, required = true, value = "used to display Subject") public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } + + @ApiModelProperty(position = 6, required = true, value = "used to display Text") public String getText() { return text; } public void setText(String text) { this.text = text; } + + @ApiModelProperty(position = 7, required = true, value = "used to display Session id") public String getSessionId() { return sessionId; } public void setSessionId(String sessionId) { this.sessionId = sessionId; } + + @ApiModelProperty(position = 8, required = true, value = "used to display Timetamp") public long getTimestamp() { return timestamp; } diff --git a/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java b/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java index 179cc1b4b..43279913b 100644 --- a/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java +++ b/src/main/java/de/thm/arsnova/entities/InterposedReadingCount.java @@ -17,9 +17,13 @@ */ package de.thm.arsnova.entities; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; + /** * Wrapper class for counting read and unread interposed questions for a session or a single user. */ +@ApiModel(value = "audiencequestion/readcount" , description = "the Interposed reading count API") public class InterposedReadingCount { private int read; @@ -35,6 +39,7 @@ public class InterposedReadingCount { this.unread = 0; } + @ApiModelProperty(position = 1, required = true, value = "used to display read interposed questions") public int getRead() { return read; } @@ -43,6 +48,7 @@ public class InterposedReadingCount { this.read = read; } + @ApiModelProperty(position = 2, required = true, value = "used to display unread interposed questions") public int getUnread() { return unread; } @@ -51,6 +57,7 @@ public class InterposedReadingCount { this.unread = unread; } + @ApiModelProperty(position = 3, required = true, value = "used to display Total questions") public int getTotal() { return getRead() + getUnread(); } diff --git a/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java b/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java index fcde16cf3..aa489e9ae 100644 --- a/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java +++ b/src/main/java/de/thm/arsnova/entities/LearningProgressOptions.java @@ -17,9 +17,12 @@ */ package de.thm.arsnova.entities; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * A session's settings regarding the calculation of the learning progress. */ +@ApiModel( value = "learning progress options" , description = "the learning progress API") public class LearningProgressOptions { private String type = "questions"; @@ -34,6 +37,7 @@ public class LearningProgressOptions { public LearningProgressOptions() {} + @ApiModelProperty(position = 1, required = true, value = "used to display the Type") public String getType() { return type; } @@ -42,6 +46,7 @@ public class LearningProgressOptions { this.type = learningProgressType; } + @ApiModelProperty(position = 2, required = true, value = "used to display question variant") public String getQuestionVariant() { return questionVariant; } diff --git a/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java b/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java index f66842389..4fff16d1a 100644 --- a/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java +++ b/src/main/java/de/thm/arsnova/entities/PossibleAnswer.java @@ -17,9 +17,13 @@ */ package de.thm.arsnova.entities; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; + /** * This class represents an answer option of a question. */ +@ApiModel( value = "session/answer" , description = "the Possible Answer API") public class PossibleAnswer { private String id; @@ -27,6 +31,7 @@ public class PossibleAnswer { private boolean correct; private int value; + @ApiModelProperty(position = 1, required = true, value = "used to display id") public String getId() { return this.id; } @@ -35,6 +40,7 @@ public class PossibleAnswer { this.id = id; } + @ApiModelProperty(position = 3, required = true, value = "used to display text") public String getText() { return text; } @@ -43,6 +49,7 @@ public class PossibleAnswer { this.text = text; } + @ApiModelProperty(position = 4, required = true, value = "correct") public boolean isCorrect() { return correct; } @@ -51,6 +58,7 @@ public class PossibleAnswer { this.correct = correct; } + @ApiModelProperty(position = 5, required = true, value = "used to display value") public int getValue() { return value; } diff --git a/src/main/java/de/thm/arsnova/entities/Question.java b/src/main/java/de/thm/arsnova/entities/Question.java index 8b1a8fd31..a004f1f1f 100644 --- a/src/main/java/de/thm/arsnova/entities/Question.java +++ b/src/main/java/de/thm/arsnova/entities/Question.java @@ -19,10 +19,13 @@ package de.thm.arsnova.entities; import java.util.Date; import java.util.List; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * A question the teacher is asking. */ +@ApiModel( value = "lecturerquestion" , description = "the Question API") public class Question { private String type; @@ -80,6 +83,7 @@ public class Question { private String hint; private String solution; + @ApiModelProperty(position = 1, required = true, value = "used to display type") public final String getType() { return type; } @@ -88,6 +92,7 @@ public class Question { this.type = type; } + @ApiModelProperty(position = 2, required = true, value = "used to display the question type") public final String getQuestionType() { return questionType; } @@ -96,6 +101,7 @@ public class Question { this.questionType = questionType; } + @ApiModelProperty(position = 3, required = true, value = "used to display question variant") public final String getQuestionVariant() { return questionVariant; } @@ -103,7 +109,7 @@ public class Question { public final void setQuestionVariant(final String questionVariant) { this.questionVariant = questionVariant; } - + @ApiModelProperty(position = 4, required = true, value = "used to display subject") public final String getSubject() { return subject; } @@ -112,6 +118,7 @@ public class Question { this.subject = subject; } + @ApiModelProperty(position = 5, required = true, value = "used to display text") public final String getText() { return text; } @@ -120,6 +127,7 @@ public class Question { this.text = text; } + @ApiModelProperty(position = 6, required = true, value = "active") public final boolean isActive() { return active; } @@ -128,6 +136,7 @@ public class Question { this.active = active; } + @ApiModelProperty(position = 7, required = true, value = "used to display released for") public final String getReleasedFor() { return releasedFor; } @@ -136,6 +145,7 @@ public class Question { this.releasedFor = releasedFor; } + @ApiModelProperty(position = 8, required = true, value = "used to display possible answers") public final List<PossibleAnswer> getPossibleAnswers() { return possibleAnswers; } @@ -144,6 +154,7 @@ public class Question { this.possibleAnswers = possibleAnswers; } + @ApiModelProperty(position = 9, required = true, value = "no correct") public final boolean isNoCorrect() { return noCorrect; } @@ -152,6 +163,7 @@ public class Question { this.noCorrect = noCorrect; } + @ApiModelProperty(position = 10, required = true, value = "used to display session id") public final String getSessionId() { return sessionId; } @@ -160,6 +172,7 @@ public class Question { this.sessionId = sessionId; } + @ApiModelProperty(position = 11, required = true, value = "used to display session id") public final String getSession() { return sessionId; } @@ -168,6 +181,7 @@ public class Question { sessionId = session; } + @ApiModelProperty(position = 12, required = true, value = "used to display session keyword") public final String getSessionKeyword() { return sessionKeyword; } @@ -176,6 +190,7 @@ public class Question { sessionKeyword = keyword; } + @ApiModelProperty(position = 13, required = true, value = "used to display timestamp") public final long getTimestamp() { return timestamp; } @@ -184,6 +199,7 @@ public class Question { this.timestamp = timestamp; } + @ApiModelProperty(position = 14, required = true, value = "used to display number") public final int getNumber() { return number; } @@ -192,10 +208,12 @@ public class Question { this.number = number; } + @ApiModelProperty(position = 15, required = true, value = "used to display duration") public final int getDuration() { return duration; } + @ApiModelProperty(position = 16, required = true, value = "used to display image Question") public final boolean isImageQuestion() { return imageQuestion; } @@ -208,6 +226,7 @@ public class Question { this.duration = duration; } + @ApiModelProperty(position = 17, required = true, value = "used to display pi Round") public int getPiRound() { return piRound; } @@ -216,6 +235,7 @@ public class Question { this.piRound = piRound; } + @ApiModelProperty(position = 18, required = true, value = "used to display pi round end time") public long getPiRoundEndTime() { return piRoundEndTime; } @@ -224,6 +244,7 @@ public class Question { this.piRoundEndTime = piRoundEndTime; } + @ApiModelProperty(position = 19, required = true, value = "used to display pi round start time") public long getPiRoundStartTime() { return piRoundStartTime; } @@ -232,6 +253,7 @@ public class Question { this.piRoundStartTime = piRoundStartTime; } + @ApiModelProperty(position = 20, required = true, value = "piRoundActive ") public boolean isPiRoundActive() { return piRoundActive; } @@ -240,6 +262,7 @@ public class Question { this.piRoundActive = piRoundActive; } + @ApiModelProperty(position = 21, required = true, value = "piRoundFinished ") public boolean isPiRoundFinished() { return piRoundFinished; } @@ -248,6 +271,7 @@ public class Question { this.piRoundFinished = piRoundFinished; } + @ApiModelProperty(position = 22, required = true, value = "used to display showStatistic") public boolean isShowStatistic() { return showStatistic; } @@ -256,6 +280,7 @@ public class Question { this.showStatistic = showStatistic; } + @ApiModelProperty(position = 23, required = true, value = "used to display cvIsColored") public boolean getCvIsColored() { return cvIsColored; } @@ -264,6 +289,7 @@ public class Question { this.cvIsColored = cvIsColored; } + @ApiModelProperty(position = 24, required = true, value = "used to display showAnswer") public boolean isShowAnswer() { return showAnswer; } @@ -272,6 +298,7 @@ public class Question { this.showAnswer = showAnswer; } + @ApiModelProperty(position = 25, required = true, value = "used to display abstention") public boolean isAbstention() { return abstention; } @@ -280,6 +307,7 @@ public class Question { this.abstention = abstention; } + @ApiModelProperty(position = 26, required = true, value = "used to display _id") public final String get_id() { return _id; } @@ -288,6 +316,7 @@ public class Question { this._id = _id; } + @ApiModelProperty(position = 27, required = true, value = "used to display _rev") public final String get_rev() { return _rev; } @@ -296,6 +325,7 @@ public class Question { this._rev = _rev; } + @ApiModelProperty(position = 28, required = true, value = "used to display image") public String getImage() { return image; } @@ -304,6 +334,7 @@ public class Question { this.image = image; } + @ApiModelProperty(position = 29, required = true, value = "used to display fcImage") public String getFcImage() { return fcImage; } @@ -312,6 +343,7 @@ public class Question { this.fcImage = fcImage; } + @ApiModelProperty(position = 30, required = true, value = "used to display gridSize") public int getGridSize() { return gridSize; } @@ -320,6 +352,7 @@ public class Question { this.gridSize = gridSize; } + @ApiModelProperty(position = 31, required = true, value = "used to display offsetX") public int getOffsetX() { return offsetX; } @@ -328,6 +361,7 @@ public class Question { this.offsetX = offsetX; } + @ApiModelProperty(position = 32, required = true, value = "used to display offsetY") public int getOffsetY() { return offsetY; } @@ -336,6 +370,7 @@ public class Question { this.offsetY = offsetY; } + @ApiModelProperty(position = 33, required = true, value = "used to display zoomLvl") public int getZoomLvl() { return zoomLvl; } @@ -344,6 +379,7 @@ public class Question { this.zoomLvl = zoomLvl; } + @ApiModelProperty(position = 34, required = true, value = "used to display gridOffsetX") public int getGridOffsetX() { return gridOffsetX; } @@ -352,6 +388,7 @@ public class Question { this.gridOffsetX = gridOffsetX; } + @ApiModelProperty(position = 35, required = true, value = "used to display gridOffsetY") public int getGridOffsetY() { return gridOffsetY; } @@ -360,6 +397,7 @@ public class Question { this.gridOffsetY = gridOffsetY; } + @ApiModelProperty(position = 36, required = true, value = "used to display grid zoom lvl") public int getGridZoomLvl() { return gridZoomLvl; } @@ -368,6 +406,7 @@ public class Question { this.gridZoomLvl = gridZoomLvl; } + @ApiModelProperty(position = 37, required = true, value = "used to display grid size X") public int getGridSizeX() { return gridSizeX; } @@ -376,6 +415,7 @@ public class Question { this.gridSizeX = gridSizeX; } + @ApiModelProperty(position = 38, required = true, value = "used to display grid size Y ") public int getGridSizeY() { return gridSizeY; } @@ -384,6 +424,7 @@ public class Question { this.gridSizeY = gridSizeY; } + @ApiModelProperty(position = 39, required = true, value = "grid is hidden") public boolean getGridIsHidden() { return gridIsHidden; } @@ -392,6 +433,7 @@ public class Question { this.gridIsHidden = gridIsHidden; } + @ApiModelProperty(position = 40, required = true, value = "used to display image rotation") public int getImgRotation() { return imgRotation; } @@ -400,6 +442,7 @@ public class Question { this.imgRotation = imgRotation; } + @ApiModelProperty(position = 41, required = true, value = "used to display toggel fields left") public boolean getToggleFieldsLeft() { return toggleFieldsLeft; } @@ -408,6 +451,7 @@ public class Question { this.toggleFieldsLeft = toggleFieldsLeft; } + @ApiModelProperty(position = 42, required = true, value = "used to display number clickable fields") public int getNumClickableFields() { return numClickableFields; } @@ -416,6 +460,7 @@ public class Question { this.numClickableFields = numClickableFields; } + @ApiModelProperty(position = 43, required = true, value = "used to display threshold correct answers") public int getThresholdCorrectAnswers() { return thresholdCorrectAnswers; } @@ -424,6 +469,7 @@ public class Question { this.thresholdCorrectAnswers = thresholdCorrectAnswers; } + @ApiModelProperty(position = 44, required = true, value = "used to display grid line color") public String getGridLineColor() { return gridLineColor; } @@ -432,6 +478,7 @@ public class Question { this.gridLineColor = gridLineColor; } + @ApiModelProperty(position = 45, required = true, value = "used to display number of dots") public int getNumberOfDots() { return numberOfDots; } @@ -440,6 +487,7 @@ public class Question { this.numberOfDots = numberOfDots; } + @ApiModelProperty(position = 46, required = true, value = "used to display the grid type") public String getGridType() { return gridType; } @@ -452,6 +500,7 @@ public class Question { this.scaleFactor = scaleFactor; } + @ApiModelProperty(position = 47, required = true, value = "used to display scale factor") public String getScaleFactor() { return this.scaleFactor; } @@ -460,10 +509,12 @@ public class Question { this.gridScaleFactor = scaleFactor; } + @ApiModelProperty(position = 48, required = true, value = "used to display grid scale factor") public String getGridScaleFactor() { return this.gridScaleFactor; } + @ApiModelProperty(position = 49, required = true, value = "enabled text nswer") public boolean isTextAnswerEnabled() { return this.textAnswerEnabled; } @@ -472,6 +523,7 @@ public class Question { this.textAnswerEnabled = textAnswerEnabled; } + @ApiModelProperty(position = 50, required = true, value = "voting disabled") public boolean isVotingDisabled() { return votingDisabled; } diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index 5994c219a..1d2c3362f 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -19,12 +19,15 @@ package de.thm.arsnova.entities; import java.io.Serializable; import java.util.List; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; import com.fasterxml.jackson.annotation.JsonIgnore; /** * Represents an ARSnova session. */ +@ApiModel( value = "session" , description = "the Session API") public class Session implements Serializable { private static final long serialVersionUID = 1L; @@ -93,6 +96,7 @@ public class Session implements Serializable { return copy; } + @ApiModelProperty(position = 1, required = true, value = "used to display the Type") public String getType() { return type; } @@ -101,6 +105,7 @@ public class Session implements Serializable { this.type = type; } + @ApiModelProperty(position = 2, required = true, value = "used to display name") public String getName() { return name; } @@ -109,6 +114,7 @@ public class Session implements Serializable { this.name = name; } + @ApiModelProperty(position = 3, required = true, value = "used to display short name") public String getShortName() { return shortName; } @@ -117,6 +123,7 @@ public class Session implements Serializable { this.shortName = shortName; } + @ApiModelProperty(position = 4, required = true, value = "used to display keyword") public String getKeyword() { return keyword; } @@ -125,6 +132,7 @@ public class Session implements Serializable { this.keyword = keyword; } + @ApiModelProperty(position = 5, required = true, value = "used to display creator") public String getCreator() { return creator; } @@ -133,6 +141,7 @@ public class Session implements Serializable { this.creator = creator; } + @ApiModelProperty(position = 6, required = true, value = "is active") public boolean isActive() { return active; } @@ -141,6 +150,7 @@ public class Session implements Serializable { this.active = active; } + @ApiModelProperty(position = 7, required = true, value = "used to display the last owner activity") public long getLastOwnerActivity() { return lastOwnerActivity; } @@ -153,6 +163,7 @@ public class Session implements Serializable { _id = id; } + @ApiModelProperty(position = 8, required = true, value = "used to display id") public String get_id() { return _id; } @@ -161,6 +172,7 @@ public class Session implements Serializable { _rev = rev; } + @ApiModelProperty(position = 9, required = true, value = "used to display rev") public String get_rev() { return _rev; } @@ -169,6 +181,7 @@ public class Session implements Serializable { _conflicts = conflicts; } + @ApiModelProperty(position = 10, required = true, value = "used to display conflicts") public List<String> get_conflicts() { return _conflicts; } @@ -177,6 +190,7 @@ public class Session implements Serializable { return user.getUsername().equals(creator); } + @ApiModelProperty(position = 11, required = true, value = "used to display course type") public String getCourseType() { return courseType; } @@ -185,6 +199,7 @@ public class Session implements Serializable { this.courseType = courseType; } + @ApiModelProperty(position = 12, required = true, value = "used to display coures id") public String getCourseId() { return courseId; } @@ -198,6 +213,7 @@ public class Session implements Serializable { return getCourseId() != null && !getCourseId().isEmpty(); } + @ApiModelProperty(position = 13, required = true, value = "used to display the creation time") public long getCreationTime() { return creationTime; } @@ -205,7 +221,8 @@ public class Session implements Serializable { public void setCreationTime(long creationTime) { this.creationTime = creationTime; } - + + @ApiModelProperty(position = 14, required = true, value = "used to display learnin progress options") public LearningProgressOptions getLearningProgressOptions() { return learningProgressOptions; } @@ -214,6 +231,7 @@ public class Session implements Serializable { this.learningProgressOptions = learningProgressOptions; } + @ApiModelProperty(position = 15, required = true, value = "used to display features") public SessionFeature getFeatures() { return features; } @@ -222,6 +240,7 @@ public class Session implements Serializable { this.features = features; } + @ApiModelProperty(position = 16, required = true, value = "used to display author name") public String getPpAuthorName() { return ppAuthorName; } @@ -230,6 +249,7 @@ public class Session implements Serializable { this.ppAuthorName = ppAuthorName; } + @ApiModelProperty(position = 17, required = true, value = "used to display author mail") public String getPpAuthorMail() { return ppAuthorMail; } @@ -237,7 +257,8 @@ public class Session implements Serializable { public void setPpAuthorMail(final String ppAuthorMail) { this.ppAuthorMail = ppAuthorMail; } - + + @ApiModelProperty(position = 18, required = true, value = "used to display university") public String getPpUniversity() { return ppUniversity; } @@ -246,6 +267,7 @@ public class Session implements Serializable { this.ppUniversity = ppUniversity; } + @ApiModelProperty(position = 19, required = true, value = "used to display logo") public String getPpLogo() { return ppLogo; } @@ -254,6 +276,7 @@ public class Session implements Serializable { this.ppLogo = ppLogo; } + @ApiModelProperty(position = 20, required = true, value = "used to display subject") public String getPpSubject() { return ppSubject; } @@ -262,6 +285,7 @@ public class Session implements Serializable { this.ppSubject = ppSubject; } + @ApiModelProperty(position = 21, required = true, value = "used to display license") public String getPpLicense() { return ppLicense; } @@ -270,6 +294,7 @@ public class Session implements Serializable { this.ppLicense = ppLicense; } + @ApiModelProperty(position = 22, required = true, value = "used to display description") public String getPpDescription() { return ppDescription; } @@ -278,6 +303,7 @@ public class Session implements Serializable { this.ppDescription = ppDescription; } + @ApiModelProperty(position = 23, required = true, value = "used to display faculty") public String getPpFaculty() { return ppFaculty; } @@ -286,6 +312,7 @@ public class Session implements Serializable { this.ppFaculty = ppFaculty; } + @ApiModelProperty(position = 24, required = true, value = "used to display level") public String getPpLevel() { return ppLevel; } @@ -294,6 +321,7 @@ public class Session implements Serializable { this.ppLevel = ppLevel; } + @ApiModelProperty(position = 25, required = true, value = "used to display the session type") public String getSessionType() { return sessionType; } diff --git a/src/main/java/de/thm/arsnova/entities/SessionFeature.java b/src/main/java/de/thm/arsnova/entities/SessionFeature.java index a09cb402d..06bcaf33f 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionFeature.java +++ b/src/main/java/de/thm/arsnova/entities/SessionFeature.java @@ -16,10 +16,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package de.thm.arsnova.entities; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * Contains fields that describe which specific feature is activated for a session. */ +@ApiModel( value = "session feature" , description = "the Session feature API") public class SessionFeature { private boolean jitt = true; @@ -51,6 +54,7 @@ public class SessionFeature { this.lecture = lecture; } + @ApiModelProperty(position = 1, required = true, value = "jitt") public boolean isJitt() { return jitt; } @@ -59,6 +63,7 @@ public class SessionFeature { this.jitt = jitt; } + @ApiModelProperty(position = 2, required = true, value = "feedback") public boolean isFeedback() { return feedback; } @@ -67,6 +72,7 @@ public class SessionFeature { this.feedback = feedback; } + @ApiModelProperty(position = 3, required = true, value = "interposed") public boolean isInterposed() { return interposed; } @@ -75,6 +81,7 @@ public class SessionFeature { this.interposed = interposed; } + @ApiModelProperty(position = 4, required = true, value = "pi") public boolean isPi() { return pi; } @@ -83,6 +90,7 @@ public class SessionFeature { this.pi = pi; } + @ApiModelProperty(position = 5, required = true, value = "learning progress") public boolean isLearningProgress() { return learningProgress; } diff --git a/src/main/java/de/thm/arsnova/entities/SessionInfo.java b/src/main/java/de/thm/arsnova/entities/SessionInfo.java index 9ef283b9f..e8354326f 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionInfo.java +++ b/src/main/java/de/thm/arsnova/entities/SessionInfo.java @@ -19,11 +19,14 @@ package de.thm.arsnova.entities; import java.util.ArrayList; import java.util.List; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * Summary information of a specific session. For example, this is used to display list entries of 'my sessions' as well * as 'my visited sessions'. */ +@ApiModel( value = "session/import" , description = "the session info API") public class SessionInfo { private String name; @@ -64,6 +67,7 @@ public class SessionInfo { return infos; } + @ApiModelProperty(position = 1, required = true, value = "used to display name") public String getName() { return name; } @@ -72,6 +76,7 @@ public class SessionInfo { this.name = name; } + @ApiModelProperty(position = 2, required = true, value = "used to display short name") public String getShortName() { return shortName; } @@ -80,6 +85,7 @@ public class SessionInfo { this.shortName = shortName; } + @ApiModelProperty(position = 3, required = true, value = "used to display keyword") public String getKeyword() { return keyword; } @@ -88,6 +94,7 @@ public class SessionInfo { this.keyword = keyword; } + @ApiModelProperty(position = 4, required = true, value = "active") public boolean isActive() { return active; } @@ -96,6 +103,7 @@ public class SessionInfo { this.active = active; } + @ApiModelProperty(position = 5, required = true, value = "used to display the course type") public String getCourseType() { return courseType; } @@ -104,6 +112,7 @@ public class SessionInfo { this.courseType = courseType; } + @ApiModelProperty(position = 6, required = true, value = "used to display the session type") public String getSessionType() { return sessionType; } @@ -112,6 +121,7 @@ public class SessionInfo { this.sessionType = sessionType; } + @ApiModelProperty(position = 7, required = true, value = "used to display level") public String getPpLevel() { return ppLevel; } @@ -120,6 +130,7 @@ public class SessionInfo { this.ppLevel = ppLevel; } + @ApiModelProperty(position = 8, required = true, value = "used to display subject") public String getPpSubject() { return ppSubject; } @@ -128,6 +139,7 @@ public class SessionInfo { this.ppSubject = ppSubject; } + @ApiModelProperty(position = 9, required = true, value = "used to display questions number") public int getNumQuestions() { return numQuestions; } @@ -136,6 +148,7 @@ public class SessionInfo { this.numQuestions = numQuestions; } + @ApiModelProperty(position = 10, required = true, value = "used to display answers number") public int getNumAnswers() { return numAnswers; } @@ -144,6 +157,7 @@ public class SessionInfo { this.numAnswers = numAnswers; } + @ApiModelProperty(position = 11, required = true, value = "used to display interposed number") public int getNumInterposed() { return numInterposed; } @@ -152,6 +166,7 @@ public class SessionInfo { this.numInterposed = numInterposed; } + @ApiModelProperty(position = 12, required = true, value = "used to display unanswered number") public int getNumUnanswered() { return numUnanswered; } @@ -160,6 +175,7 @@ public class SessionInfo { this.numUnanswered = numUnanswered; } + @ApiModelProperty(position = 13, required = true, value = "used to display creation time") public long getCreationTime() { return creationTime; } @@ -168,6 +184,7 @@ public class SessionInfo { this.creationTime = creationTime; } + @ApiModelProperty(position = 14, required = true, value = "used to display unread interposed number") public int getNumUnredInterposed() { return numUnredInterposed; } diff --git a/src/main/java/de/thm/arsnova/entities/Statistics.java b/src/main/java/de/thm/arsnova/entities/Statistics.java index 919e24234..44ad24eca 100644 --- a/src/main/java/de/thm/arsnova/entities/Statistics.java +++ b/src/main/java/de/thm/arsnova/entities/Statistics.java @@ -17,9 +17,13 @@ */ package de.thm.arsnova.entities; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; + /** * Collection of several statistics about ARSnova. */ +@ApiModel(value = "statistics" , description = "the Statistic API") public class Statistics { private int answers; @@ -34,6 +38,7 @@ public class Statistics { private int interposedQuestions; private int conceptQuestions; + @ApiModelProperty(position = 1, required = true, notes = "used to display Answers") public int getAnswers() { return answers; } @@ -42,6 +47,7 @@ public class Statistics { this.answers = answers; } + @ApiModelProperty(position = 2, required = true, notes = "used to display Lecture Questions") public int getLectureQuestions() { return lectureQuestions; } @@ -50,6 +56,7 @@ public class Statistics { this.lectureQuestions = questions; } + @ApiModelProperty(position = 3, required = true, notes = "used to display prepartion Questions") public int getPreparationQuestions() { return preparationQuestions; } @@ -58,10 +65,12 @@ public class Statistics { this.preparationQuestions = questions; } + @ApiModelProperty(position = 4, required = true, notes = "used to display Questions") public int getQuestions() { return getLectureQuestions() + getPreparationQuestions(); } + @ApiModelProperty(position = 5, required = true, notes = "used to display open Sessions") public int getOpenSessions() { return openSessions; } @@ -70,6 +79,7 @@ public class Statistics { this.openSessions = openSessions; } + @ApiModelProperty(position = 6, required = true, notes = "used to display closed Sessions") public int getClosedSessions() { return closedSessions; } @@ -78,10 +88,12 @@ public class Statistics { this.closedSessions = closedSessions; } + @ApiModelProperty(position = 7, required = true, notes = "used to display Sessions") public int getSessions() { return getOpenSessions() + getClosedSessions(); } + @ApiModelProperty(position = 8, required = true, notes = "used to display Active Users") public int getActiveUsers() { return activeUsers; } @@ -90,6 +102,7 @@ public class Statistics { this.activeUsers = activeUsers; } + @ApiModelProperty(position = 9, required = true, notes = "used to display logged in Users") public int getLoggedinUsers() { return loggedinUsers; } @@ -98,6 +111,7 @@ public class Statistics { this.loggedinUsers = loggedinUsers; } + @ApiModelProperty(position = 10, required = true, notes = "used to display interposed Questions") public int getInterposedQuestions() { return interposedQuestions; } @@ -106,6 +120,7 @@ public class Statistics { this.interposedQuestions = interposedQuestions; } + @ApiModelProperty(position = 11, required = true, notes = "used to display creators") public int getCreators() { return creators; } @@ -114,6 +129,7 @@ public class Statistics { this.creators = creators; } + @ApiModelProperty(position = 12, required = true, notes = "used to display concept Questions") public int getConceptQuestions() { return conceptQuestions; } @@ -122,6 +138,7 @@ public class Statistics { this.conceptQuestions = conceptQuestions; } + @ApiModelProperty(position = 13, required = true, notes = "used to display active Students") public int getActiveStudents() { return activeStudents; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/Answer.java b/src/main/java/de/thm/arsnova/entities/transport/Answer.java index dcc884721..6acc2aebb 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/Answer.java +++ b/src/main/java/de/thm/arsnova/entities/transport/Answer.java @@ -20,6 +20,8 @@ package de.thm.arsnova.entities.transport; import java.util.Date; import com.fasterxml.jackson.annotation.JsonInclude; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; import de.thm.arsnova.entities.Question; import de.thm.arsnova.entities.User; @@ -28,6 +30,7 @@ import de.thm.arsnova.entities.User; * A user's answer to a question. */ @JsonInclude(JsonInclude.Include.NON_DEFAULT) +@ApiModel( value = "session/answer" , description = "the Answer API") public class Answer { private String answerSubject; @@ -38,6 +41,7 @@ public class Answer { private boolean abstention; + @ApiModelProperty(position = 1, required = true, value = "used to display text answer") public String getAnswerText() { return answerText; } @@ -45,7 +49,7 @@ public class Answer { public void setAnswerText(String answerText) { this.answerText = answerText; } - + @ApiModelProperty(position = 2, required = true, value = "used to display subject answer") public String getAnswerSubject() { return answerSubject; } @@ -54,6 +58,7 @@ public class Answer { this.answerSubject = answerSubject; } + @ApiModelProperty(position = 3, required = true, value = "abstention") public boolean isAbstention() { return abstention; } @@ -87,6 +92,7 @@ public class Answer { return theAnswer; } + @ApiModelProperty(position = 4, required = true, value = "used to display image answer") public String getAnswerImage() { return answerImage; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java index 6ce7606c3..10fcec883 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java +++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java @@ -23,10 +23,13 @@ import java.util.List; import de.thm.arsnova.entities.Question; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.User; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * This class is used to allow the import and export of a session. */ +@ApiModel( value = "session/import and export" , description = "the import export session API") public class ImportExportSession { private ImportExportSesssion session; @@ -35,6 +38,7 @@ public class ImportExportSession { private List<InterposedQuestion> feedbackQuestions; + @ApiModelProperty(position = 1, required = true, value = "used to display session") public ImportExportSesssion getSession() { return session; } @@ -43,6 +47,7 @@ public class ImportExportSession { this.session = session; } + @ApiModelProperty(position = 2, required = true, value = "used to display questions") public List<ImportExportQuestion> getQuestions() { return questions; } @@ -51,6 +56,7 @@ public class ImportExportSession { this.questions = questions; } + @ApiModelProperty(position = 3, required = true, value = "used to display questions feedback") public List<InterposedQuestion> getFeedbackQuestions() { return feedbackQuestions; } @@ -94,6 +100,7 @@ public class ImportExportSession { private List<Answer> answers; + @ApiModelProperty(position = 4, required = true, value = " used to display answers") public List<Answer> getAnswers() { return answers; } @@ -113,6 +120,7 @@ public class ImportExportSession { private PublicPool publicPool; + @ApiModelProperty(position = 19, required = true, value = "used to display short name") public String getName() { return name; } @@ -121,6 +129,7 @@ public class ImportExportSession { this.name = name; } + @ApiModelProperty(position = 5, required = true, value = "used to display short name") public String getShortName() { return shortName; } @@ -129,6 +138,7 @@ public class ImportExportSession { this.shortName = shortName; } + @ApiModelProperty(position = 6, required = true, value = "active") public boolean isActive() { return active; } @@ -137,6 +147,7 @@ public class ImportExportSession { this.active = active; } + @ApiModelProperty(position = 7, required = true, value = "used to display public pool") public PublicPool getPublicPool() { return publicPool; } @@ -170,6 +181,7 @@ public class ImportExportSession { private String shortName; + @ApiModelProperty(position = 8, required = true, value = "used to display author name") public String getPpAuthorName() { return ppAuthorName; } @@ -178,6 +190,7 @@ public class ImportExportSession { this.ppAuthorName = ppAuthorName; } + @ApiModelProperty(position = 9, required = true, value = "used to display author mail") public String getPpAuthorMail() { return ppAuthorMail; } @@ -186,6 +199,7 @@ public class ImportExportSession { this.ppAuthorMail = ppAuthorMail; } + @ApiModelProperty(position = 10, required = true, value = "used to display university") public String getPpUniversity() { return ppUniversity; } @@ -194,6 +208,7 @@ public class ImportExportSession { this.ppUniversity = ppUniversity; } + @ApiModelProperty(position = 11, required = true, value = "used to display logo") public String getPpLogo() { return ppLogo; } @@ -202,6 +217,7 @@ public class ImportExportSession { this.ppLogo = ppLogo; } + @ApiModelProperty(position = 12, required = true, value = "used to display subject") public String getPpSubject() { return ppSubject; } @@ -210,6 +226,7 @@ public class ImportExportSession { this.ppSubject = ppSubject; } + @ApiModelProperty(position = 13, required = true, value = "used to display license") public String getPpLicense() { return ppLicense; } @@ -218,6 +235,7 @@ public class ImportExportSession { this.ppLicense = ppLicense; } + @ApiModelProperty(position = 14, required = true, value = "used to display level") public String getPpLevel() { return ppLevel; } @@ -226,6 +244,7 @@ public class ImportExportSession { this.ppLevel = ppLevel; } + @ApiModelProperty(position = 15, required = true, value = "used to display description") public String getPpDescription() { return ppDescription; } @@ -234,6 +253,7 @@ public class ImportExportSession { this.ppDescription = ppDescription; } + @ApiModelProperty(position = 16, required = true, value = "used to display faculty") public String getPpFaculty() { return ppFaculty; } @@ -242,6 +262,7 @@ public class ImportExportSession { this.ppFaculty = ppFaculty; } + @ApiModelProperty(position = 17, required = true, value = "used to display name") public String getName() { return name; } @@ -250,6 +271,7 @@ public class ImportExportSession { this.name = name; } + @ApiModelProperty(position = 18, required = true, value = "used to display short name") public String getShortName() { return shortName; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java index 7cf960a08..188d3fb85 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java +++ b/src/main/java/de/thm/arsnova/entities/transport/InterposedQuestion.java @@ -19,17 +19,20 @@ package de.thm.arsnova.entities.transport; import java.util.ArrayList; import java.util.List; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; /** * A question a student is asking. Also known as feedback or audience question. */ +@ApiModel(value = "audiencequestion/{questionId}" , description = "the Interposed Question API") public class InterposedQuestion { - private String id; - private String subject; - private String text; - private long timestamp; - private boolean read; + private String id; + private String subject; + private String text; + private long timestamp; + private boolean read; public static List<InterposedQuestion> fromList(List<de.thm.arsnova.entities.InterposedQuestion> questions) { ArrayList<InterposedQuestion> interposedQuestions = new ArrayList<InterposedQuestion>(); @@ -40,15 +43,21 @@ public class InterposedQuestion { } public InterposedQuestion(de.thm.arsnova.entities.InterposedQuestion question) { + this.id = question.get_id(); + this.subject = question.getSubject(); + this.text = question.getText(); + this.timestamp = question.getTimestamp(); + this.read = question.isRead(); } public InterposedQuestion() {} + @ApiModelProperty(position = 1, required = true, value = "used to display Id") public String getId() { return id; } @@ -57,6 +66,7 @@ public class InterposedQuestion { this.id = id; } + @ApiModelProperty(position = 2, required = true, value = "used to display Subject") public String getSubject() { return subject; } @@ -65,6 +75,7 @@ public class InterposedQuestion { this.subject = subject; } + @ApiModelProperty(position = 3, required = true, value = "used to display Text") public String getText() { return text; } @@ -73,6 +84,7 @@ public class InterposedQuestion { this.text = text; } + @ApiModelProperty(position = 4, required = true, value = "used to display Timetamp") public long getTimestamp() { return timestamp; } @@ -81,6 +93,7 @@ public class InterposedQuestion { this.timestamp = timestamp; } + @ApiModelProperty(position = 5, required = true, value = "is read") public boolean isRead() { return read; } diff --git a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java index f7245143d..fcf2660e6 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java +++ b/src/main/java/de/thm/arsnova/entities/transport/LearningProgressValues.java @@ -17,9 +17,13 @@ */ package de.thm.arsnova.entities.transport; +import com.wordnik.swagger.annotations.ApiModel; +import com.wordnik.swagger.annotations.ApiModelProperty; + /** * The calculated learning progress along with meta-data. */ +@ApiModel( value = "session/{sessionkey}/learningprogress" , description = "the learning progress API") public class LearningProgressValues { private int courseProgress; @@ -34,6 +38,7 @@ public class LearningProgressValues { private int numUsers; + @ApiModelProperty(position = 1, required = true, value = "used to display course progress") public int getCourseProgress() { return courseProgress; } @@ -42,6 +47,7 @@ public class LearningProgressValues { this.courseProgress = courseProgress; } + @ApiModelProperty(position = 2, required = true, value = "used to display my progress") public int getMyProgress() { return myProgress; } @@ -50,6 +56,7 @@ public class LearningProgressValues { this.myProgress = myProgress; } + @ApiModelProperty(position = 3, required = true, value = "used to display questions number") public int getNumQuestions() { return numQuestions; } @@ -74,6 +81,7 @@ public class LearningProgressValues { this.denominator = denominator; } + @ApiModelProperty(position = 4, required = true, value = "used to display user number") public int getNumUsers() { return numUsers; } -- GitLab