38 lines
3.1 KiB
Markdown
38 lines
3.1 KiB
Markdown
|
## Тестовое задание на разработку отчета по занятиям для moyklass.com
|
|||
|
|
|||
|
Полные условия задания можно посмотреть в файле [Тестовое задание бекенд.pdf](https://github.com/FutureXpo/moyklass.com/blob/main/%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B5%D0%BA%D0%B5%D0%BD%D0%B4.pdf)
|
|||
|
|
|||
|
## Установка и запуск
|
|||
|
|
|||
|
* Установить модули при помощи `npm install` или `yarn install`
|
|||
|
* Запустить с помощью `npm start`
|
|||
|
* Запросы отправолять на `localhost:8080`
|
|||
|
* `localhost:8080/` (GET)
|
|||
|
* `localhost:8080/lessons` (POST)
|
|||
|
|
|||
|
## Список запросов
|
|||
|
|
|||
|
#### / (GET) Все параметры не обязательные
|
|||
|
|
|||
|
* date. Либо одна дата в формате YYYY-MM-DD, либо две в таком же формате через запятую (например, «2019-01-01,2019-09-01». Если указана одна дата, выбираются занятия на эту дату. Если указаны 2 даты, то выбираются занятия за период, включая указанные даты.
|
|||
|
* status. Статус занятия. принимается либо 0 (не проведено), либо 1 (проведено)
|
|||
|
* teacherIds. id учителей через запятую. Выбираются все занятия, которые ведет хотя бы один из указанных учителей.
|
|||
|
* studentsCount. количество записанных на занятия учеников. либо одно число (тогда выбирается занятие с точным числом записанных), либо 2 числа через запятую, тогда они рассматриваются как диапазон и выбираются занятия с количеством записанных, попадающих в диапазон включительно.
|
|||
|
* page. Номер возвращаемой страницы. первая страница - 1.
|
|||
|
* lessonsPerPage. Количество занятий на странице. По-умолчанию - 5 занятий.
|
|||
|
|
|||
|
> [Пример запроса](http://localhost:8080?date=2019-01-01,2019-09-01&status=1&teacherIds=1,2&studentsCount=1,4&page=1&lessonsPerPage=10)
|
|||
|
|
|||
|
#### /lessons (POST)
|
|||
|
|
|||
|
```js
|
|||
|
{
|
|||
|
teacherIds: [1,2], // id учителей, ведущих занятия
|
|||
|
title: ‘Blue Ocean’, // Тема занятия. Одинаковая на все создаваемые занятия
|
|||
|
days: [0,1,3,6], // Дни недели, по которым нужно создать занятия, где 0 - это воскресенье
|
|||
|
firstDate: ‘2019-09-10’, // Первая дата, от которой нужно создавать занятия
|
|||
|
lessonsCount: 9, // Количество занятий для создания
|
|||
|
lastDate: ‘2019-12-31’, // Последняя дата, до которой нужно создавать занятия.
|
|||
|
}
|
|||
|
```
|