Skip to content

Latest commit

 

History

History
231 lines (107 loc) · 9.73 KB

README.md

File metadata and controls

231 lines (107 loc) · 9.73 KB

Erudite

Об Erudite

Erudite - база комнат, оборудования, дисциплин и занятий в МИЭМе. Является модулем NVR, так как авторизация проходит через него. Erudite это более удобная и гибкая замена Google AdminSDK.

Данный сервис построен на базе mongodb, где мы храним и манипулируем данными, которые нам нужны для использования другими сервисами.

У Erudite есть несколько особенностей:

  • Без аутенфикации Erudite пропускает только GET запросы, для других типов запросов нужна аутенфикация по API ключу NVR

  • Так как Erudite использует нереляционную базу данных, пользователи данного сервиса могут добавять любые дополнительные поля, которые им будут удобны - главное, следить за правильным заполнением обязательных полей, которые указаны в документации.

Использование этого модуля клиентом

Документация UI: https://nvr.miem.hse.ru/api/erudite/docs

REST API

На данный момент в Erudite присутствуют 4 коллекции - equipment, rooms, disciplines и lessons. Поэтому описание API методов и запросов будет разбито по коллекциям.


Rooms

Rooms - коллекция, хранящия МИЭМовские аудитории.

Получить комнаты

Request

GET /rooms

Запрос вернет список комнат если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех комнат по данным параметрам, и вернет результат.

Получить комнату

Request

GET /rooms/{room_id}

Запрос вернет комнату по переданному айдишнику, если тот существует.

Получить оборудование из комнаты

Request

GET /rooms/{room_id}/equipment

Запрос вернет оборудование в комнате, указанной по айдишнику, если тот существует.

Создать комнату

Request

POST /rooms

Запрос создаст комнату по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная комната. Важно указать id комнаты при её создании.

Обновить комнату

Request

PUT /rooms/{room_id}

Запрос удалит все данные о комнате, кроме ее айдишника, и запишет в комнату новые данные. Так же происходит проверка обязательных полей на правильность.

Удалить комнату

Request

DELETE /rooms/{room_id}

Запрос удаляет комнату по переданому айдишнику, если комната с данным айдишником существует.

Изменить комнату

Request

PATCH /rooms/{room_id}

Запрос обновит указанные поля комнаты, чей айдишник передается через параметры. Если таких полей нет у данной комнаты, то они будут добавлены.


Equipment

Equipment - коллекция, хранящая МИЭМовское оборудование.

Получить все оборудование

Request

GET /equipment

Запрос вернет список оборудования если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всего оборудования по данным параметрам, и вернет результат.

Получить экземпляр оборудования

Request

GET /equipment/{equipment_id}

Запрос вернет оборудование по переданному айдишнику, если тот существует.

Создать оборудование

Request

POST /equipment

Запрос создаст оборудование по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращено добавленное оборудование. Важно указать id оборудования при её создании.

Обновить оборудование

Request

PUT /equipment/{equipment_id}

Запрос удалит все данные об оборудовании, кроме его айдишника, и запишет в оборудование новые данные. Так же происходит проверка обязательных полей на правильность.

Удалить оборудование

Request

DELETE /equipment/{equipment_id}

Запрос удаляет оборудование по переданому айдишнику, если оборудование с данным айдишником существует.

Изменить оборудование

Request

PATCH /equipment/{equipment_id}

Запрос обновит указанные поля оборудования, чей айдишник передается через параметры. Если таких полей нет у данного оборудования, то они будут добавлены.


Disciplines

Disciplines - коллекция, хранящая данные о дисциплинах в МИЭМе.

Получить все дисциплины

Request

GET /disciplines

Запрос вернет список дисциплин если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех дисциплин по данным параметрам, и вернет результат.

Получить дисциплину

Request

GET /disciplines/{discipline_id}

Запрос вернет оборудование по переданному айдишнику, если тот существует.

Создать дисциплину

Request

POST /equipment

Запрос создаст дисциплину по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная дисциплина. Важно указать id дисциплины при её создании.

Обновить дисциплину

Request

PUT /equipment/{equipment_id}

Запрос удалит все данные об дисциплине, кроме её айдишника, и запишет в оборудование новые данные. Так же происходит проверка обязательных полей на правильность.

Удалить дисциплину

Request

DELETE /equipment/{equipment_id}

Запрос удаляет дисциплину по переданому айдишнику, если дисциплина с данным айдишником существует.


Lessons

Lessons - коллекция, хранящая данные о парах в МИЭМе.

Получить все пары

Request

GET /lessons

Запрос вернет список пар если не было передано ни одного дополнительного параметра. Если же параметр/параметры были переданы, то данный запрос произведет фильтрацию всех пар по данным параметрам, и вернет результат.

Получить пару

Request

GET /lessons/{lesson_id}

Запрос вернет пару по переданному айдишнику, если тот существует.

Создать пару

Request

POST /lessons

Запрос создаст пару по переденным данным, если обязательные поля введены и введены правильно. При успешном добавлении будет возвращена добавленная пара. Важно указать id пары при её создании.