An open API service indexing awesome lists of open source software.

https://github.com/zbitname/nodejs-agg-test

Тестовое задание для позиции разработчика на NodeJS для компании Aggregion
https://github.com/zbitname/nodejs-agg-test

Last synced: over 1 year ago
JSON representation

Тестовое задание для позиции разработчика на NodeJS для компании Aggregion

Awesome Lists containing this project

README

          

# Предисловие
В текущем репозитории серверное приложение (*REST API*), в котором реализована работа с тремя моделями ```Item```, ```SubItem``` и ```SubSubItem```. Необходимо сделать так, чтобы проходились имеющиеся тесты. Для успешного выполнения задания вам разрешено редактировать только модели, контроллеры и рутинги (```**/*.model.js```, ```**/*.controller.js``` и ```**/index.js``` файлы соответственно).

# Как пользоваться:
```bash
git clone https://github.com/zbitname/nodejs-agg-test.git
cd nodejs-agg-test
npm install
# Решаете задачу
gulp test
# Если тесты проходятся без ошибок, то пакуете директорию и присылаете нам
tar cvzf nodejs-agg-test-resolved.tar.gz *
# Отправляете получившийся архив по адресу denis.bezrukov@e-azbuka.ru
```

# Задачи:
1) Ответ сервера на любой метод должен возвращать ```id``` вместо ```_id``` и нельзя, чтобы в ответ попал ```SubItem.secret```. При решении этой задачи по возможности не использовать циклы в контроллерах и моделях.

2) Есть 3 модели: ```Item```, ```SubItem``` и ```SubSubItem```. Между ними есть зависимости: ```SubItem <- Item``` и ```SubSubItem <- (Item, SubItem)```.
Задача, построить *один* запрос к СУБД таким образом, чтобы была следующая схема ответа:
```json
[
{
"qty": 20,
"item": "5576ab596e2d2d61a0e01d0e",
"subItems": [
{
"subItem": "5576aba1d1ba899ea0cfcf55",
"qty": 1
}
]
}
]
```
Где:
- ```item``` = ```Item._id```
- ```qty``` = количество объектов в коллекции ```SubSubItems```, которые относятся к набору (```Item```, ```SubItem```)
- ```subItems``` = набор моделей ```SubItem```, которые относятся к одной модели ```Item```.
- ```subItems.subItem``` = ```SubItem._id```
- ```subItems.qty``` = количество объектов в коллекции ```SubSubItems```, которые относятся к текущему ```SubItem``` в массиве

3) Исправить ошибки/недочёты

# Важно!!!
В процессе решения задач можно редактировать только реализацию контроллеров, моделей и рутингов.
Результат работы присылать на: denis.bezrukov@e-azbuka.ru