-
Notifications
You must be signed in to change notification settings - Fork 39
/
queries.js
67 lines (52 loc) · 3.37 KB
/
queries.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'use strict';
class Queries {
constructor(models) {
// Что-нибудь инициализируем в конструкторе
}
// Далее идут методы, которые вам необходимо реализовать:
getAllSouvenirs() {
// Данный метод должен возвращать все сувениры.
}
getCheapSouvenirs(price) {
// Данный метод должен возвращать все сувениры, цена которых меньше или равна price.
}
getTopRatingSouvenirs(n) {
// Данный метод должен возвращать топ n сувениров с самым большим рейтингом.
}
getSouvenirsByTag(tag) {
// Данный метод должен возвращать все сувениры, в тегах которых есть tag.
// Кроме того, в ответе должны быть только поля id, name, image, price и rating.
}
getSouvenirsCount({ country, rating, price }) {
// Данный метод должен возвращать количество сувениров,
// из страны country, с рейтингом больше или равной rating,
// и ценой меньше или равной price.
// Важно, чтобы метод работал очень быстро,
// поэтому учтите это при определении моделей (!).
}
searchSouvenirs(substring) {
// Данный метод должен возвращать все сувениры, в название которых входит
// подстрока substring. Поиск должен быть регистронезависимым.
}
getDisscusedSouvenirs(n) {
// Данный метод должен возвращать все сувениры, имеющих >= n отзывов.
// Кроме того, в ответе должны быть только поля id, name, image, price и rating.
}
deleteOutOfStockSouvenirs() {
// Данный метод должен удалять все сувениры, которых нет в наличии
// (то есть amount = 0).
// Метод должен возвращать количество удаленных сувениров в случае успешного удаления.
}
addReview(souvenirId, { login, text, rating }) {
// Данный метод должен добавлять отзыв к сувениру souvenirId
// содержит login, text, rating - из аргументов.
// Обратите внимание, что при добавлении отзыва рейтинг сувенира должен быть пересчитан,
// и всё это должно происходить за одну транзакцию (!).
}
getCartSum(login) {
// Данный метод должен считать общую стоимость корзины пользователя login
// У пользователя может быть только одна корзина, поэтому это тоже можно отразить
// в модели.
}
}
module.exports = Queries;