В текущем репозитории серверное приложение (REST API), в котором реализована работа с тремя моделями Item
, SubItem
и SubSubItem
. Необходимо сделать так, чтобы проходились имеющиеся тесты. Для успешного выполнения задания вам разрешено редактировать только модели, контроллеры и рутинги (**/*.model.js
, **/*.controller.js
и **/index.js
файлы соответственно).
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
-
Ответ сервера на любой метод должен возвращать
id
вместо_id
и нельзя, чтобы в ответ попалSubItem.secret
. При решении этой задачи по возможности не использовать циклы в контроллерах и моделях. -
Есть 3 модели:
Item
,SubItem
иSubSubItem
. Между ними есть зависимости:SubItem <- Item
иSubSubItem <- (Item, SubItem)
. Задача, построить один запрос к СУБД таким образом, чтобы была следующая схема ответа:
[
{
"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
в массиве
- Исправить ошибки/недочёты
В процессе решения задач можно редактировать только реализацию контроллеров, моделей и рутингов. Результат работы присылать на: denis.bezrukov@e-azbuka.ru