Lists of all available requests and what they are return.
Login to account.
{
"username": "login",
"password": "password"
}
- OK/200
{
"message": "Successfully logged in.",
"data": {
"user": {
"username": "username",
"email": "[email protected]",
"type": "USERTYPE",
"courses": null, // user courses array
"avatarPath": null // avatar storing path
},
"tokenPair": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJlNTJkZDQ4MC0zMGIyLTQ2NGUtYTFmMy0wNjAyZGMxNzkzN2IiLCJpYXQiOjE2NTI3NTA1NDN9.gGLUeTmVTbPAZiplH2Ucl_7owWmpsT19E4Kwc042fgM",
"refreshToken": "93a7c215-b378-48d8-862c-0f09c33c3dc5"
}
}
}
- Bad Request/400 - Invalid creds
{
"message": "Invalid username or password"
}
Register new account
{
"username": "login",
"password": "password",
"email": "[email protected]",
"type": "USERTYPE"
}
- OK/200
{
"message": "Successfully register."
}
- Conflict/409 - User already exist.
{
"message": "User already exist"
}
- Bad request/400 - Something not provided.
{
"message": "Some or one of require field doesn't provided."
}
Log out from account.
Require: Bearer Token.
- OK/200
{
"message": "Successfully logged out"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
Get info about logged in user
Require: Bearer Token.
- OK/200
{
"message": "User data returned successfully",
"data": {
"user": {
"username": "username",
"email": "[email protected]",
"type": "USERTYPE",
"courses": null, // user courses array
"avatarPath": null // avatar storing path
}
}
}
- Not Found/404 - User not found.
{
"message": "No such user"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
Change username.
Require: Bearer Token.
{
"newUsername": "name"
}
- OK/200
{
"message": "Username was successfully updated"
}
- Not Found/404 - User not found.
{
"message": "No such user"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
- Bad request/400 - Something not provided.
{
"message": "Some or one of require field doesn't provided."
}
Change email.
Require: Bearer Token.
{
"newEmail": "name"
}
- OK/200
{
"message": "Email was successfully updated"
}
- Not Found/404 - User not found.
{
"message": "No such user"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
- Bad request/400 - Something not provided.
{
"message": "Some or one of require field doesn't provided."
}
Change avatar
Require: Bearer Token
KEY | VALUE |
---|---|
userId | string |
avatar | png file |
- OK/200
{
"message": "Avatar updated successfully"
}
- Not Found/404 - User not found
{
"message": "No such user"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided."
}
Change password
Require: Bearer Token
"oldPassword": "oldPassword",
"newPassword": "newPassword"
- OK/200
{
"message": "Password was updated successfully"
}
- Not Found/404 - User not found
{
"message": "No such user"
}
- Unauthorized/401 - Not logged in
{
"message": "Log in to your account."
}
Bad request/400 - Something not provided.
{
"message": "Some or one of require field doesn't provided."
}
Subscribe user on course
Require: Bearer Token
{
"courseId": "courseId"
}
- OK/200
{
"message": "Successfully subscribe"
}
- Unauthorized/401 - Not logged in
{
"message": "No such user"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided."
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
- Not Found/404 - User not found.
{
"message": "No such user"
}
Bad Request/400 - Invalid user type
{
"message": "This course not avaliable"
}
Unsubscribe user on course
Require: Bearer Token
{
"courseId": "courseId"
}
- OK/200
{
"message": "Successfully subscribe"
}
- Unathorized/401 - Not logged in
{
"message": "No such user"
}
- Bad request/400 - Something not provided.
{
"message": "Some or one of require field doesn't provided."
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
- Not Found/404 - User not found.
{
"message": "No such user"
}
- Bad request/400 - Invalid user type
{
"message": "This course not avaliable"
}
Create course
{
"name": "course name"
"description": "course desc"
"author": "author"
"userType" "TEACHER"
}
- OK/200
{
"message": "Course created successfully"
}
- Conflict/409 - Course already exist
{
"message": "Similar course already exist"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Bad request/400 - User don't have permission, wrong userType
{
"message": "You don't have permission for this"
}
Update course information
{
"courseId": "course id",
"newDescription": "new description",
"oldDescription": "old description"
}
- OK/200
{
"message": "Course updated successfully"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Get all courses in system
- OK/200
{
"message": "Course returned successfully",
"data": [
{
"id": "course id",
"name": "course name",
"description": "course description",
"studentCount": 0,
"author": "course author"
}
]
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Get course by courseId
- OK/200
{
"message": "Course returned successfully",
"data": {
"id": "course id",
"name": "course name",
"description": "course description",
"studentCount": 0,
"author": "course author"
}
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Search course by part of full name
- OK/200
{
"message": "Course returned successfully",
"data": [
{
"id": "078ac9ec-d80e-465f-b460-115466dba709",
"name": "test",
"description": "test course",
"studentCount": 0,
"author": "admin"
}
]
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Get courses by specific author
- OK/200
{
"message": "Course returned successfully",
"data": [
{
"id": "078ac9ec-d80e-465f-b460-115466dba709",
"name": "test",
"description": "test course",
"studentCount": 0,
"author": "admin"
}
]
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Delete specific course
{
"courseId": "course id"
}
- OK/200
{
"message": "Course deleted successfully"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Course not found
{
"message": "Course doesn't exist."
}
Upload video on course
KEY | VALUE |
---|---|
video | mp4 file |
lessonNumber | number |
courseId | string |
videoName | string |
- OK/200
{
"message": "Video uploaded successfully.",
"data": {
"statusCode": 200,
"message": "Video uploaded successfully.",
"success": true,
"data": {
"name": "super video",
"path": "/server/dist/public/texts/testvideo.mp4",
"lessonNumber": 1,
"courseId": "078ac9ec-d80e-465f-b460-115466dba709"
}
}
}
- Bad Request/400 - Video file not provided
{
"message": "Files not provided"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Conflict/409 - Video already exist
{
"message": "Similar video already exist"
}
Get video
-
OK/206 - Partial message
-
Bad Request/400 - Provide range headers
{
"message": "Requires range headers"
}
- Not Found/404 - Video not found
{
"message": "Video isn't exist"
}
Delete video
{
"courseId": "course id",
"lessonNumber": "lesson number"
}
- OK/200
{
"message": "Video deleted successfully.
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Video not found
{
"message": "Video isn't exist"
}
Update video information
{
"courseId": "course id",
"lessonNumber": "lesson number",
"newName": "new video name",
"newLessonNumber": 1 // new lesson number
}
- OK/200
{
"message": "Video updated successfully"
}
- Not Found/404 - Video not found
{
"message": "Video isn't exist"
}
- Conflict/409 - Same video name/video already exist
{
"message": "Similar video already exist"
}
Upload text on course
KEY | VALUE |
---|---|
text | markdown file |
lessonNumber | number |
courseId | string |
videoName | string |
- OK/200
{
"message": "Video uploaded successfully.",
"data": {
"statusCode": 200,
"message": "Text uploaded successfully.",
"success": true,
"data": {
"name": "super text",
"path": "/server/dist/public/texts/supettext.md",
"lessonNumber": 2,
"courseId": "078ac9ec-d80e-465f-b460-115466dba709"
}
}
}
- Bad Request/400 - Video file not provided
{
"message": "Files not provided"
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Conflict/409 - Video already exist
{
"message": "Similar text already exist"
}
Get text
- OK/200 - Partial message
{
"message": "Text found successfully."
"data": "markdown text"
}
- Bad Request/400 - Provide range headers
{
"message": "Requires range headers"
}
- Not Found/404 - Video not found
{
"message": "Text isn't exist"
}
Delete text
{
"courseId": "course id",
"lessonNumber": "lesson number"
}
- OK/200
{
"message": "Text deleted successfully.
}
- Bad request/400 - Something not provided
{
"message": "Some or one of require field doesn't provided"
}
- Not Found/404 - Video not found
{
"message": "Text isn't exist"
}
Update video information
{
"courseId": "course id",
"lessonNumber": "lesson number",
"newName": "new text name",
"newLessonNumber": 1 // new text number
}
- OK/200
{
"message": "Text updated successfully"
}
- Not Found/404 - Video not found
{
"message": "Text isn't exist"
}
- Conflict/409 - Same video name/video already exist
{
"message": "Similar text already exist"
}