Archived
1
0
This repository has been archived on 2022-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
moyklass.com/readme.md

38 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2022-06-03 00:29:39 +03:00
## Тестовое задание на разработку отчета по занятиям для 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, // Последняя дата, до которой нужно создавать занятия.
}
```