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
- Host: GitHub
- URL: https://github.com/zbitname/nodejs-agg-test
- Owner: zbitname
- Created: 2015-06-09T11:54:40.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-06-11T12:14:08.000Z (about 11 years ago)
- Last Synced: 2025-01-24T07:11:54.927Z (over 1 year ago)
- Language: JavaScript
- Size: 117 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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