- Автентифікація
- Зміна пароля у випадку статусу NEW_PASSWORD_REQUIRED
- Оновлення коду доступу
- Авторизація
- Дисципліни
- Класні кімнати
- Курси
- Предмети
- Групи
- Викладачі
- Розклад
- Зміни
- Користувачі
- Схема бази даних
Базова URL: http://ppfc.us-east-2.elasticbeanstalk.com/api
API використовує JSON WEB Token для авторизації запитів. Отримати токен доступу та токен для його оновлення можна за наступним маршрутом.
Запит:
POST /authenticate
{
"username": "ІМ'Я КОРИСТУВАЧА",
"password": "ПАРОЛЬ"
}
Відповідь:
200 - Запит виконано успішно.
{
"status": "SUCCESS",
"accessToken": "XXX",
"refreshToken": "XXX"
}
200 - Запит виконано успішно, але необхідно змінити пароль користувача.
{
"status": "NEW_PASSWORD_REQUIRED",
"session": "XXX"
}
401 - Помилка авторизації, невірно введені автентифікаційні дані користувача.
{
"status": "FAILURE",
"error": "Not authorized: Incorrect username or password."
}
Запит:
POST /authChallengeSetNewPassword
{
"username": "ІМ'Я КОРИСТУВАЧА",
"password": "НОВИЙ ПАРОЛЬ",
"session": "XXX"
}
Відповідь:
200 - Запит виконано успішно.
{
"status": "SUCCESS",
"accessToken": "XXX",
"refreshToken": "XXX"
}
500 - Виникла внутрішня помилка, код сесії було введено не вірно.
{
"status": "FAILURE",
"error": "Internal error: Invalid session provided"
}
Запит:
POST /refreshAccessToken
{
"refreshToken": "XXX"
}
Відповідь:
200 - Запит виконано успішно.
{
"status": "SUCCESS",
"accessToken": "XXX",
"refreshToken": "XXX"
}
401 - Помилка авторизації, токен було введено не вірно.
{
"status": "FAILURE",
"error": "Not authorized: Invalid Refresh Token"
}
500 - Внутрішня помилка сервера.
Для авторизації необхідно додати токен доступу у заголовки запита.
Authorization: Bearer ТОКЕН ДОСТУПУ
Потрібна авторизація: ТАК
Запит:
GET /discipline
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"name": "ПІ"
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /discipline/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 1,
"name": "ПІ"
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /discipline
{
"name": "ПІ"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /discipline/{id}
{
"name": "ПІ"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /discipline/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /classroom
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"name": "221"
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /classroom/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 1,
"name": "221"
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /classroom
{
"name": "221"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /classroom/{id}
{
"name": "221"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /classroom/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /course
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"number": 1
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /course/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 1,
"number": 1
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /course
{
"number": 1
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /course/{id}
{
"number": 1
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /course/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /subject
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"name": "Основи програмної інженерії"
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /subject/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 1,
"name": "Основи програмної інженерії"
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /subject
{
"name": "Основи програмної інженерії"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /subject/{id}
{
"name": "Основи програмної інженерії"
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /subject/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /group
Параметри запиту:
- courseId - приймає ідентифікатор курсу.
- courseNumber - приймає номер курсу.
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"number": 14,
"course": {
"id": 1,
"number": 1
}
},
...
]
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /group/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 4,
"number": 44,
"course": {
"id": 4,
"number": 4
}
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /group
{
"number": 44,
"courseId": 4
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /group/{id}
{
"number": 44,
"courseId": 4
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /group/{id}
Відповідь:
200 - Запит виконано успішно.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /teacher
Параметри запиту:
- disciplineId - приймає ідентифікатор дисципліни.
- disciplineName - приймає назву дисципліни.
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /teacher/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /teacher
{
"firstName": "Олександр",
"middleName": "Вікторович",
"lastName": "Бабич",
"disciplineId": 1,
"isHeadTeacher": true
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /teacher/{id}
{
"firstName": "Олександр",
"middleName": "Вікторович",
"lastName": "Бабич",
"disciplineId": 1,
"isHeadTeacher": true
}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /teacher/{id}
Відповідь:
200 - Запит виконано успішно.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /schedule
Параметри запиту:
- dayNumber - приймає номер дня тижня.
- isNumerator - приймає булеве значення,
true- чисельник,false- знаменник. - groupId - приймає ідентифікатор групи.
- groupNumber - приймає номер групи.
- teacherId - приймає ідентифікатор викладача.
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"group": {
"id": 3,
"number": 34,
"course": {
"id": 3,
"number": 3
}
},
"classroom": {
"id": 1,
"name": "221"
},
"teacher": {
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
},
"subject": {
"id": 1,
"name": "Основи програмної інженерії"
},
"isSubject": true,
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": true
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /schedule/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 2,
"group": {
"id": 4,
"number": 44,
"course": {
"id": 4,
"number": 4
}
},
"classroom": {
"id": 1,
"name": "221"
},
"teacher": {
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
},
"eventName": "Консультація",
"isSubject": false,
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": false
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /schedule
{
"groupId": 3,
"classroomId": 1,
"teacherId": 1,
"subjectId": 1,
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": true
}
або
{
"groupId": 4,
"classroomId": 1,
"teacherId": 1,
"eventName": "Консультація",
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": false
}
Ремарка: поля subjectId та eventName не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /schedule/{id}
{
"groupId": 3,
"classroomId": 1,
"teacherId": 1,
"subjectId": 1,
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": true
}
або
{
"groupId": 4,
"classroomId": 1,
"teacherId": 1,
"eventName": "Консультація",
"lessonNumber": 1,
"dayNumber": 1,
"isNumerator": false
}
Ремарка: поля subjectId та eventName не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /schedule/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /change
Параметри запиту:
- date - приймає значення дати у форматі
yyyy-mm-dd. - isNumerator - приймає булеве значення,
true- чисельник,false- знаменник. - groupId - приймає ідентифікатор групи.
- groupNumber - приймає номер групи.
- teacherId - приймає ідентифікатор викладача.
Відповідь:
200 - Запит виконано успішно.
[{
"id": 1,
"group": {
"id": 3,
"number": 34,
"course": {
"id": 3,
"number": 3
}
},
"classroom": {
"id": 1,
"name": "221"
},
"teacher": {
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
},
"subject": {
"id": 1,
"name": "Основи програмної інженерії"
},
"isSubject": true,
"lessonNumber": 1,
"date": "2023-03-01",
"isNumerator": false
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /change/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 2,
"group": {
"id": 4,
"number": 44,
"course": {
"id": 4,
"number": 4
}
},
"classroom": {
"id": 1,
"name": "221"
},
"teacher": {
"id": 1,
"firstName": "Олександр",
"lastName": "Бабич",
"middleName": "Вікторович",
"discipline": {
"id": 1,
"name": "ПІ"
},
"isHeadTeacher": true
},
"eventName": "Консультація",
"isSubject": false,
"lessonNumber": 2,
"date": "2023-03-01",
"isNumerator": false
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /change
{
"groupId": 3,
"classroomId": 1,
"teacherId": 1,
"subjectId": 1,
"lessonNumber": 1,
"date": "2023-03-01",
"isNumerator": false
}
або
{
"groupId": 4,
"classroomId": 1,
"teacherId": 1,
"eventName": "Консультація",
"lessonNumber": 2,
"date": "2023-03-01",
"isNumerator": false
}
Ремарка: поля subjectId та eventName не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /change/{id}
{
"groupId": 3,
"classroomId": 1,
"teacherId": 1,
"subjectId": 1,
"lessonNumber": 1,
"date": "2023-03-01",
"isNumerator": false
}
або
{
"groupId": 4,
"classroomId": 1,
"teacherId": 1,
"eventName": "Консультація",
"lessonNumber": 2,
"date": "2023-03-01",
"isNumerator": false
}
Ремарка: поля subjectId та eventName не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /change/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Потрібна авторизація: ТАК
Запит:
GET /user
Параметри запиту:
- isStudent - приймає булеве значення,
true- студенти,false- викладачі.
Відповідь:
200 - Запит виконано успішно.
[{
"id": 123456789,
"group": {
"id": 1,
"number": 14,
"course": {
"id": 1,
"number": 1
}
},
"isGroup": true
},
...
]
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
GET /user/{id}
Відповідь:
200 - Запит виконано успішно.
{
"id": 123456789,
"group": {
"id": 1,
"number": 14,
"course": {
"id": 1,
"number": 1
}
},
"isGroup": true
}
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
POST /user
{
"id": 123456790,
"groupId": 1
}
або
{
"id": 987654321,
"teacherId": 1
}
Ремарка: поля groupId та teacherId не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
PUT /user
{
"id": 123456790,
"groupId": 1
}
або
{
"id": 987654321,
"teacherId": 1
}
Ремарка: поля groupId та teacherId не є обов'язковими. У тілі запиту має бути лише одне з цих полів.
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
Запит:
DELETE /user/{id}
Відповідь:
200 - Запит виконано успішно.
400 - Неправильний запит.
401 - Помилка авторизації.
500 - Внутрішня помилка сервера.
