-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathswagger.json
1 lines (1 loc) · 34.8 KB
/
swagger.json
1
{"swagger":"2.0","info":{"description":"Api Documentation","version":"1.0","title":"Api Documentation","termsOfService":"urn:tos","contact":{},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0"}},"host":"euklidesapp-env.qtjh3twn55.eu-west-2.elasticbeanstalk.com","basePath":"/","tags":[{"name":"exercise-resource","description":"Exercise Resource"},{"name":"group-resource","description":"Group Resource"},{"name":"homework-resource","description":"Homework Resource"},{"name":"notification-resource","description":"Notification Resource"},{"name":"student-resource","description":"Student Resource"},{"name":"token-resource","description":"Token Resource"},{"name":"user-resource","description":"User Resource"}],"paths":{"/exercises":{"get":{"tags":["exercise-resource"],"summary":"Get page of exercises with its authors","operationId":"getPageOfExercisesUsingGET","produces":["*/*"],"parameters":[{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","enum":["creationDateTime","name","class"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«ExerciseResponseWithAuthor»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"post":{"tags":["exercise-resource"],"summary":"Create exercise","operationId":"createExerciseUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"requestBody","description":"requestBody","required":true,"schema":{"$ref":"#/definitions/ExerciseRequest"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/ExerciseResponse"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/exercises/{exerciseId}/pictures":{"post":{"tags":["exercise-resource"],"summary":"addPictures","operationId":"addPicturesUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"exerciseId","in":"path","description":"exerciseId","required":true,"type":"string","format":"uuid"},{"name":"files","in":"formData","description":"files","required":true,"type":"array","items":{"type":"file"},"collectionFormat":"multi"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/AddPicturesResponse"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"delete":{"tags":["exercise-resource"],"summary":"removePictures","operationId":"removePicturesUsingDELETE","produces":["*/*"],"parameters":[{"name":"exerciseId","in":"path","description":"exerciseId","required":true,"type":"string","format":"uuid"},{"in":"body","name":"request","description":"request","required":true,"schema":{"$ref":"#/definitions/RemovePicturesRequest"}}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/exercises/{id}":{"get":{"tags":["exercise-resource"],"summary":"Get exercise by id","operationId":"getExerciseUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ExerciseResponseWithAuthor"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"put":{"tags":["exercise-resource"],"summary":"Update exercise","operationId":"updateExerciseUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"},{"in":"body","name":"requestBody","description":"requestBody","required":true,"schema":{"$ref":"#/definitions/ExerciseRequest"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/ExerciseResponse"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"delete":{"tags":["exercise-resource"],"summary":"Delete exercise","operationId":"deleteExerciseUsingDELETE","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/groups":{"post":{"tags":["group-resource"],"summary":"Create group","description":"Only user with 'TEACHER' role can perform this operation.","operationId":"createGroupUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/GroupCreateDto"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/Group"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/groups/{groupId}/homeworks":{"get":{"tags":["group-resource"],"summary":"Get all homeworks of this group","description":"Only teacher of this group can perform this operation.","operationId":"getHomeworkForGroupUsingGET","produces":["*/*"],"parameters":[{"name":"groupId","in":"path","description":"groupId","required":true,"type":"string","format":"uuid"},{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","enum":["creationDateTime","deadlineDateTime"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«HomeworkWithExercisesResponse»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"post":{"tags":["group-resource"],"summary":"Give homework to chosen students in this group","description":"Only teacher of this group can perform this operation. Deadline should not be sooner than current UTC time + 1 hour.","operationId":"giveHomeworkUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/GiveHomeworkDto"}},{"name":"groupId","in":"path","description":"groupId","required":true,"type":"string","format":"uuid"}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/HomeworkWithExercises"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/groups/{groupId}/my-homeworks":{"get":{"tags":["group-resource"],"summary":"Get homeworks of this group, which are assigned to current user","description":"Only member of this group can perform this operation.","operationId":"getHomeworkForStudentUsingGET","produces":["*/*"],"parameters":[{"name":"groupId","in":"path","description":"groupId","required":true,"type":"string","format":"uuid"},{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","enum":["creationDateTime","deadlineDateTime"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«HomeworkWithExercisesResponse»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/groups/{groupId}/students":{"post":{"tags":["group-resource"],"summary":"Add student to group","description":"Only teacher of this group can perform this operation. Student can be added only once.","operationId":"addStudentToGroupUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"groupId","in":"path","description":"groupId","required":true,"type":"string","format":"uuid"},{"in":"body","name":"request","description":"request","required":true,"schema":{"$ref":"#/definitions/AddStudentToGroupRequest"}}],"responses":{"201":{"description":"Created"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/groups/{groupId}/students/{userId}":{"delete":{"tags":["group-resource"],"summary":"Remove student from group","description":"Only teacher of this group can perform this operation.","operationId":"removeStudentFromGroupUsingDELETE","produces":["*/*"],"parameters":[{"name":"groupId","in":"path","description":"groupId","required":true,"type":"string","format":"uuid"},{"name":"userId","in":"path","description":"userId","required":true,"type":"string","format":"uuid"}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/groups/{id}":{"get":{"tags":["group-resource"],"summary":"Get group by id","description":"Students are sorted by last name","operationId":"getGroupUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/GroupWithTeacherAndStudents"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"put":{"tags":["group-resource"],"summary":"Update group","description":"Only teacher of this group can perform this operation.","operationId":"updateGroupUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/GroupUpdateDto"}},{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Group"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"delete":{"tags":["group-resource"],"summary":"Delete group","description":"Only teacher of this group can perform this operation.","operationId":"deleteGroupUsingDELETE","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/homework-with-answers/{homeworkId}":{"get":{"tags":["homework-resource"],"summary":"Get homework with answers grouped by student","description":"Only teacher of this homework's group can perform this operation","operationId":"getHomeworkWithAnswersGroupedByStudentUsingGET","produces":["*/*"],"parameters":[{"name":"homeworkId","in":"path","description":"homeworkId","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/HomeworkWithAnswersGroupedByStudentResponse"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/homework-with-my-answers/{homeworkId}":{"get":{"tags":["homework-resource"],"summary":"Get homework with answers of current user","description":"Only student who was assigned to this homework can perform this operation","operationId":"getHomeworkWithMyAnswersUsingGET","produces":["*/*"],"parameters":[{"name":"homeworkId","in":"path","description":"homeworkId","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/HomeworkWithStudentAnswersResponse"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/homeworks/{homeworkId}/answer":{"post":{"tags":["homework-resource"],"summary":"Commit answers to homework","description":"Only student who was assigned to this homework can perform this operation","operationId":"commitAnswersToHomeworkUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"homeworkId","in":"path","description":"homeworkId","required":true,"type":"string","format":"uuid"},{"in":"body","name":"request","description":"request","required":true,"schema":{"$ref":"#/definitions/CommitAnswersRequest"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/StudentAnswersResponse"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/homeworks/{homeworkId}/check-student-answers/{studentId}":{"post":{"tags":["homework-resource"],"summary":"Check student answers","description":"Only teacher of this homework's group can perform this operation","operationId":"checkStudentAnswersUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"homeworkId","in":"path","description":"homeworkId","required":true,"type":"string","format":"uuid"},{"in":"body","name":"request","description":"request","required":true,"schema":{"$ref":"#/definitions/CheckStudentHomeworkRequest"}},{"name":"studentId","in":"path","description":"studentId","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/StudentAnswersResponse"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/homeworks/{id}":{"delete":{"tags":["homework-resource"],"summary":"Delete homework","description":"Only teacher of this homework's group can perform this operation.","operationId":"deleteHomeworkUsingDELETE","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/notifications":{"get":{"tags":["notification-resource"],"summary":"getAllNotificationsOfUser","operationId":"getAllNotificationsOfUserUsingGET","produces":["*/*"],"parameters":[{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","default":"createDateTime","enum":["createDateTime"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«NotificationDTO»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/notifications/{id}/mark-as-read":{"post":{"tags":["notification-resource"],"summary":"markNotificationAsRead","operationId":"markNotificationAsReadUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/NotificationDTO"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/students":{"get":{"tags":["student-resource"],"summary":"Get all students","description":"Requires admin or teacher role","operationId":"getAllStudentsUsingGET","produces":["*/*"],"parameters":[{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","enum":["creationDateTime","email","firstName","lastName"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«UserDto»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/token":{"post":{"tags":["token-resource"],"summary":"Get auth token (and refresh token)","description":"Used to obtain auth and refresh token pair passing username and password or used to obtain new auth token passing refresh token.","operationId":"getTokenUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"grantType","description":"Determines whether username and password are used for authentication or refresh token","required":true,"schema":{"type":"string","enum":["credentials","refreshToken"]}},{"in":"body","name":"login","description":"Required if 'grantType' is 'credentials'","required":false,"schema":{"type":"string"}},{"in":"body","name":"password","description":"Required if 'grantType' is 'credentials'","required":false,"schema":{"type":"string"}},{"in":"body","name":"refreshToken","description":"Required if 'grantType' is 'refreshToken'.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/TokenResponse"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/users":{"get":{"tags":["user-resource"],"summary":"Get page of users","operationId":"getPageUsingGET","produces":["*/*"],"parameters":[{"name":"pageNumber","in":"query","required":false,"type":"integer","format":"int32"},{"name":"pageSize","in":"query","required":false,"type":"integer","format":"int32"},{"name":"sortDirection","in":"query","required":false,"type":"string","enum":["ASC","DESC"]},{"name":"sortProperty","in":"query","required":false,"type":"string","enum":["creationDateTime","email","firstName","lastName"]}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/Page«UserDto»"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"post":{"tags":["user-resource"],"summary":"Create user","description":"User with admin privileges is allowed to create accounts for teachers and students. User with teacher privileges is allowed to create student accounts only.","operationId":"createUsingPOST","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/UserCreationDto"}}],"responses":{"201":{"description":"Created","schema":{"$ref":"#/definitions/UserDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/users/{id}":{"get":{"tags":["user-resource"],"summary":"Get user by id","operationId":"getUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/UserDto"}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"put":{"tags":["user-resource"],"summary":"Update user","description":"This operation must be performed by admin or owner of the account.","operationId":"updateUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/UserUpdateDto"}},{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/UserDto"}},"201":{"description":"Created"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false},"delete":{"tags":["user-resource"],"summary":"Delete user","description":"This operation must be performed by admin or owner of the account.","operationId":"deleteUsingDELETE","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}},"deprecated":false}},"/users/{id}/groups":{"get":{"tags":["user-resource"],"summary":"Get user groups","operationId":"getUserGroupsUsingGET","produces":["*/*"],"parameters":[{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}},"/users/{id}/password":{"put":{"tags":["user-resource"],"summary":"Update password","description":"This operation must be performed by admin or owner of the account.","operationId":"updatePasswordUsingPUT","consumes":["application/json"],"produces":["*/*"],"parameters":[{"in":"body","name":"dto","description":"dto","required":true,"schema":{"$ref":"#/definitions/PasswordUpdateDto"}},{"name":"id","in":"path","description":"id","required":true,"type":"string","format":"uuid"}],"responses":{"201":{"description":"Created"},"204":{"description":"No Content"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}},"deprecated":false}}},"definitions":{"AddPicturesResponse":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"}}},"title":"AddPicturesResponse"},"AddStudentToGroupRequest":{"type":"object","required":["userId"],"properties":{"userId":{"type":"string","format":"uuid"}},"title":"AddStudentToGroupRequest"},"AnswerCheckRequest":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["SINGLE_ANSWER","MULTIPLE_ANSWERS"]},"answerCorrect":{"type":"boolean"},"answersCorrect":{"type":"array","items":{"type":"boolean"}}},"title":"AnswerCheckRequest"},"AnswerRequest":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["OPEN","OPEN_WITH_POINTS","CLOSED"]},"answer":{"type":"string"},"choice":{"type":"integer","format":"int32"},"pointAnswers":{"type":"array","items":{"type":"string"}}},"title":"AnswerRequest"},"CheckStudentHomeworkRequest":{"type":"object","required":["exerciseToAnswerCheck"],"properties":{"exerciseToAnswerCheck":{"type":"object","additionalProperties":{"$ref":"#/definitions/AnswerCheckRequest"}}},"title":"CheckStudentHomeworkRequest"},"Choice":{"type":"object","required":["label","order"],"properties":{"label":{"type":"string"},"order":{"type":"integer","format":"int32"}},"title":"Choice"},"CommitAnswersRequest":{"type":"object","required":["exercisesToAnswers"],"properties":{"exercisesToAnswers":{"type":"object","additionalProperties":{"$ref":"#/definitions/AnswerRequest"}}},"title":"CommitAnswersRequest"},"CommittedAnswerResponse":{"type":"object","required":["commissionDateTime","type"],"properties":{"answer":{"type":"string"},"choice":{"type":"integer","format":"int32"},"commissionDateTime":{"type":"string","format":"date-time"},"correct":{"type":"boolean"},"pointAnswers":{"type":"array","items":{"$ref":"#/definitions/PointAnswer"}},"type":{"type":"string","enum":["OPEN","OPEN_WITH_POINTS","CLOSED"]}},"title":"CommittedAnswerResponse"},"Exercise":{"type":"object","required":["authorId","class","content","creationDateTime","id","name","pictures"],"properties":{"authorId":{"type":"string","format":"uuid"},"class":{"type":"integer","format":"int32"},"content":{"type":"string"},"creationDateTime":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"pictures":{"type":"array","items":{"type":"string"}}},"title":"Exercise"},"ExerciseRequest":{"type":"object","required":["content","name","type"],"properties":{"answer":{"type":"string","description":"Used if type equals OPEN. Can be null."},"choices":{"type":"array","description":"Required if type equals CLOSED. Must have at least 2 choices. Choice orders must be unique.","items":{"$ref":"#/definitions/Choice"}},"correctChoiceOrder":{"type":"integer","format":"int32","description":"Required if type equals CLOSED. Must point to existing choice."},"name":{"type":"string","minLength":1,"maxLength":50},"points":{"type":"array","description":"Required if type equals OPEN_WITH_POINTS. Must not be empty. Point orders must be unique.","items":{"$ref":"#/definitions/Point"}},"content":{"type":"string"},"class":{"type":"integer","format":"int32","minimum":4.0,"maximum":6.0,"exclusiveMinimum":false,"exclusiveMaximum":false},"type":{"type":"string","enum":["CLOSED","OPEN","OPEN_WITH_POINTS"]}},"title":"ExerciseRequest"},"ExerciseResponse":{"type":"object","required":["class","content","creationDateTime","id","name","pictures","type"],"properties":{"answer":{"type":"string"},"choices":{"type":"array","items":{"$ref":"#/definitions/Choice"}},"class":{"type":"integer","format":"int32"},"content":{"type":"string"},"correctChoiceOrder":{"type":"integer","format":"int32"},"creationDateTime":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"pictures":{"type":"array","items":{"type":"string"}},"points":{"type":"array","items":{"$ref":"#/definitions/Point"}},"type":{"type":"string","enum":["CLOSED","OPEN","OPEN_WITH_POINTS"]}},"title":"ExerciseResponse"},"ExerciseResponseWithAuthor":{"type":"object","required":["class","content","createdBy","creationDateTime","id","name","pictures","type"],"properties":{"answer":{"type":"string"},"choices":{"type":"array","items":{"$ref":"#/definitions/Choice"}},"class":{"type":"integer","format":"int32"},"content":{"type":"string"},"correctChoiceOrder":{"type":"integer","format":"int32"},"createdBy":{"$ref":"#/definitions/UserDto"},"creationDateTime":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"pictures":{"type":"array","items":{"type":"string"}},"points":{"type":"array","items":{"$ref":"#/definitions/Point"}},"type":{"type":"string","enum":["CLOSED","OPEN","OPEN_WITH_POINTS"]}},"title":"ExerciseResponseWithAuthor"},"GiveHomeworkDto":{"type":"object","required":["deadline","exercises","students"],"properties":{"students":{"type":"array","items":{"type":"string","format":"uuid"}},"exercises":{"type":"array","items":{"type":"string","format":"uuid"}},"deadline":{"type":"string","format":"date-time"}},"title":"GiveHomeworkDto"},"Group":{"type":"object","required":["class","code","creationDateTime","id","yearbook"],"properties":{"class":{"type":"integer","format":"int32"},"code":{"type":"string"},"creationDateTime":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"yearbook":{"type":"integer","format":"int32"}},"title":"Group"},"GroupCreateDto":{"type":"object","required":["code"],"properties":{"class":{"type":"integer","format":"int32","minimum":4.0,"maximum":6.0,"exclusiveMinimum":false,"exclusiveMaximum":false},"code":{"type":"string","minLength":0,"maxLength":10},"yearbook":{"type":"integer","format":"int32","minimum":2000.0,"exclusiveMinimum":false}},"title":"GroupCreateDto"},"GroupUpdateDto":{"type":"object","required":["code"],"properties":{"class":{"type":"integer","format":"int32","minimum":4.0,"maximum":6.0,"exclusiveMinimum":false,"exclusiveMaximum":false},"code":{"type":"string","minLength":0,"maxLength":10},"yearbook":{"type":"integer","format":"int32","minimum":2000.0,"exclusiveMinimum":false}},"title":"GroupUpdateDto"},"GroupWithTeacherAndStudents":{"type":"object","required":["class","code","creationDateTime","id","students","teacher","yearbook"],"properties":{"class":{"type":"integer","format":"int32"},"code":{"type":"string"},"creationDateTime":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid"},"students":{"type":"array","items":{"$ref":"#/definitions/UserDto"}},"teacher":{"$ref":"#/definitions/UserDto"},"yearbook":{"type":"integer","format":"int32"}},"title":"GroupWithTeacherAndStudents"},"HomeworkWithAnswersGroupedByStudentResponse":{"type":"object","required":["creationDateTime","deadlineDateTime","exercises","id","studentsWithAnswersToHomework"],"properties":{"creationDateTime":{"type":"string","format":"date-time"},"deadlineDateTime":{"type":"string","format":"date-time"},"exercises":{"type":"array","items":{"$ref":"#/definitions/ExerciseResponse"}},"id":{"type":"string","format":"uuid"},"studentsWithAnswersToHomework":{"type":"array","items":{"$ref":"#/definitions/StudentWithAnswersToHomeworkResponse"}}},"title":"HomeworkWithAnswersGroupedByStudentResponse"},"HomeworkWithExercises":{"type":"object","required":["creationDateTime","deadline","exercises","id"],"properties":{"creationDateTime":{"type":"string","format":"date-time"},"deadline":{"type":"string","format":"date-time"},"exercises":{"type":"array","items":{"$ref":"#/definitions/Exercise"}},"id":{"type":"string","format":"uuid"}},"title":"HomeworkWithExercises"},"HomeworkWithExercisesResponse":{"type":"object","required":["creationDateTime","deadline","exercises","id"],"properties":{"creationDateTime":{"type":"string","format":"date-time"},"deadline":{"type":"string","format":"date-time"},"exercises":{"type":"array","items":{"$ref":"#/definitions/ExerciseResponse"}},"id":{"type":"string","format":"uuid"}},"title":"HomeworkWithExercisesResponse"},"HomeworkWithStudentAnswersResponse":{"type":"object","required":["creationDateTime","deadlineDateTime","exercises","exercisesToAnswers","id"],"properties":{"creationDateTime":{"type":"string","format":"date-time"},"deadlineDateTime":{"type":"string","format":"date-time"},"exercises":{"type":"array","items":{"$ref":"#/definitions/ExerciseResponse"}},"exercisesToAnswers":{"type":"object","additionalProperties":{"$ref":"#/definitions/CommittedAnswerResponse"}},"id":{"type":"string","format":"uuid"}},"title":"HomeworkWithStudentAnswersResponse"},"NotificationDTO":{"type":"object","required":["createDateTime","id","type"],"properties":{"createDateTime":{"type":"string","format":"date-time"},"groupId":{"type":"string","format":"uuid"},"homeworkId":{"type":"string","format":"uuid"},"id":{"type":"string","format":"uuid"},"readDateTime":{"type":"string","format":"date-time"},"studentId":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["NEW_HOMEWORK","HOMEWORK_CHECKED","HOMEWORK_ANSWER_COMMITTED"]}},"title":"NotificationDTO"},"Page«ExerciseResponseWithAuthor»":{"type":"object","required":["items","number","size","totalItemCount"],"properties":{"items":{"type":"array","items":{"$ref":"#/definitions/ExerciseResponseWithAuthor"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalItemCount":{"type":"integer","format":"int32"}},"title":"Page«ExerciseResponseWithAuthor»"},"Page«HomeworkWithExercisesResponse»":{"type":"object","required":["items","number","size","totalItemCount"],"properties":{"items":{"type":"array","items":{"$ref":"#/definitions/HomeworkWithExercisesResponse"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalItemCount":{"type":"integer","format":"int32"}},"title":"Page«HomeworkWithExercisesResponse»"},"Page«NotificationDTO»":{"type":"object","required":["items","number","size","totalItemCount"],"properties":{"items":{"type":"array","items":{"$ref":"#/definitions/NotificationDTO"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalItemCount":{"type":"integer","format":"int32"}},"title":"Page«NotificationDTO»"},"Page«UserDto»":{"type":"object","required":["items","number","size","totalItemCount"],"properties":{"items":{"type":"array","items":{"$ref":"#/definitions/UserDto"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalItemCount":{"type":"integer","format":"int32"}},"title":"Page«UserDto»"},"PasswordUpdateDto":{"type":"object","required":["password"],"properties":{"password":{"type":"string","minLength":6,"maxLength":30}},"title":"PasswordUpdateDto"},"Point":{"type":"object","required":["content","order"],"properties":{"answer":{"type":"string"},"content":{"type":"string"},"order":{"type":"integer","format":"int32"}},"title":"Point"},"PointAnswer":{"type":"object","required":["answer"],"properties":{"answer":{"type":"string"},"correct":{"type":"boolean"}},"title":"PointAnswer"},"RemovePicturesRequest":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","items":{"type":"string"}}},"title":"RemovePicturesRequest"},"StudentAnswersResponse":{"type":"object","required":["exercisesToAnswers"],"properties":{"exercisesToAnswers":{"type":"object","additionalProperties":{"$ref":"#/definitions/CommittedAnswerResponse"}}},"title":"StudentAnswersResponse"},"StudentWithAnswersToHomeworkResponse":{"type":"object","required":["email","exercisesToAnswers","firstName","id","lastName"],"properties":{"email":{"type":"string"},"exercisesToAnswers":{"type":"object","additionalProperties":{"$ref":"#/definitions/CommittedAnswerResponse"}},"firstName":{"type":"string"},"id":{"type":"string","format":"uuid"},"lastName":{"type":"string"}},"title":"StudentWithAnswersToHomeworkResponse"},"Token":{"type":"object","required":["expirationDate","token"],"properties":{"expirationDate":{"type":"string","format":"date-time"},"token":{"type":"string"}},"title":"Token"},"TokenRequest":{"type":"object","title":"TokenRequest"},"TokenResponse":{"type":"object","required":["authToken","refreshToken","role","userId"],"properties":{"authToken":{"$ref":"#/definitions/Token"},"refreshToken":{"$ref":"#/definitions/Token"},"role":{"type":"string","enum":["ADMIN","TEACHER","STUDENT"]},"userId":{"type":"string","format":"uuid"}},"title":"TokenResponse"},"UserCreationDto":{"type":"object","required":["email","firstName","lastName","password","role"],"properties":{"email":{"type":"string"},"password":{"type":"string","minLength":6,"maxLength":30},"firstName":{"type":"string","minLength":1,"maxLength":50},"lastName":{"type":"string","minLength":1,"maxLength":100},"role":{"type":"string","enum":["ADMIN","TEACHER","STUDENT"]}},"title":"UserCreationDto"},"UserDto":{"type":"object","required":["creationDateTime","email","firstName","id","lastName","role"],"properties":{"creationDateTime":{"type":"string","format":"date-time"},"email":{"type":"string"},"firstName":{"type":"string"},"id":{"type":"string","format":"uuid"},"lastName":{"type":"string"},"role":{"type":"string","enum":["ADMIN","TEACHER","STUDENT"]}},"title":"UserDto"},"UserUpdateDto":{"type":"object","required":["firstName","lastName"],"properties":{"firstName":{"type":"string","minLength":1,"maxLength":50},"lastName":{"type":"string","minLength":1,"maxLength":100}},"title":"UserUpdateDto"}}}