recombee-api-client 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +20 -14
  2. package/lib/api-client.js +49 -37
  3. package/lib/errors/response-error.js +2 -2
  4. package/lib/requests/add-search-synonym.js +60 -0
  5. package/lib/requests/delete-all-search-synonyms.js +40 -0
  6. package/lib/requests/delete-item.js +1 -1
  7. package/lib/requests/delete-more-items.js +44 -0
  8. package/lib/requests/delete-search-synonym.js +42 -0
  9. package/lib/requests/delete-user.js +1 -1
  10. package/lib/requests/index.js +8 -3
  11. package/lib/requests/list-search-synonyms.js +55 -0
  12. package/lib/requests/recommend-items-to-item.js +9 -4
  13. package/lib/requests/recommend-items-to-user.js +10 -5
  14. package/lib/requests/recommend-next-items.js +55 -0
  15. package/lib/requests/recommend-users-to-item.js +4 -2
  16. package/lib/requests/recommend-users-to-user.js +5 -3
  17. package/lib/requests/search-items.js +8 -3
  18. package/lib/requests/update-more-items.js +53 -0
  19. package/package.json +2 -3
  20. package/test/add-bookmark-batch_test.js +11 -11
  21. package/test/add-bookmark-test.js +24 -12
  22. package/test/add-cart-addition-batch_test.js +11 -11
  23. package/test/add-cart-addition-test.js +24 -12
  24. package/test/add-detail-view-batch_test.js +11 -11
  25. package/test/add-detail-view-test.js +24 -12
  26. package/test/add-group-batch_test.js +8 -8
  27. package/test/add-group-callback_test.js +1 -1
  28. package/test/add-group-test.js +13 -7
  29. package/test/add-item-batch_test.js +8 -8
  30. package/test/add-item-callback_test.js +1 -1
  31. package/test/add-item-property-batch_test.js +8 -8
  32. package/test/add-item-property-test.js +12 -6
  33. package/test/add-item-test.js +13 -7
  34. package/test/add-purchase-batch_test.js +11 -11
  35. package/test/add-purchase-test.js +24 -12
  36. package/test/add-rating-batch_test.js +11 -11
  37. package/test/add-rating-test.js +30 -15
  38. package/test/add-search-synonym-batch_test.js +37 -0
  39. package/test/add-search-synonym-callback_test.js +47 -0
  40. package/test/add-search-synonym-test.js +45 -0
  41. package/test/add-series-batch_test.js +8 -8
  42. package/test/add-series-callback_test.js +1 -1
  43. package/test/add-series-test.js +13 -7
  44. package/test/add-user-batch_test.js +8 -8
  45. package/test/add-user-callback_test.js +1 -1
  46. package/test/add-user-property-batch_test.js +8 -8
  47. package/test/add-user-property-test.js +12 -6
  48. package/test/add-user-test.js +13 -7
  49. package/test/delete-all-search-synonyms-batch_test.js +33 -0
  50. package/test/delete-all-search-synonyms-callback_test.js +35 -0
  51. package/test/delete-all-search-synonyms-test.js +31 -0
  52. package/test/delete-bookmark-batch_test.js +5 -5
  53. package/test/delete-bookmark-test.js +6 -3
  54. package/test/delete-cart-addition-batch_test.js +5 -5
  55. package/test/delete-cart-addition-test.js +6 -3
  56. package/test/delete-detail-view-batch_test.js +5 -5
  57. package/test/delete-detail-view-test.js +6 -3
  58. package/test/delete-group-batch_test.js +8 -8
  59. package/test/delete-group-callback_test.js +1 -1
  60. package/test/delete-group-test.js +19 -10
  61. package/test/delete-item-batch_test.js +8 -8
  62. package/test/delete-item-callback_test.js +1 -1
  63. package/test/delete-item-property-batch_test.js +8 -8
  64. package/test/delete-item-property-callback_test.js +1 -1
  65. package/test/delete-item-property-test.js +19 -10
  66. package/test/delete-item-test.js +19 -10
  67. package/test/delete-more-items-batch_test.js +35 -0
  68. package/test/delete-more-items-callback_test.js +37 -0
  69. package/test/delete-more-items-test.js +33 -0
  70. package/test/delete-purchase-batch_test.js +5 -5
  71. package/test/delete-purchase-test.js +6 -3
  72. package/test/delete-rating-batch_test.js +5 -5
  73. package/test/delete-rating-test.js +6 -3
  74. package/test/delete-search-synonym-batch_test.js +42 -0
  75. package/test/delete-search-synonym-callback_test.js +53 -0
  76. package/test/delete-search-synonym-test.js +47 -0
  77. package/test/delete-series-batch_test.js +8 -8
  78. package/test/delete-series-callback_test.js +1 -1
  79. package/test/delete-series-test.js +19 -10
  80. package/test/delete-user-batch_test.js +8 -8
  81. package/test/delete-user-callback_test.js +1 -1
  82. package/test/delete-user-property-batch_test.js +8 -8
  83. package/test/delete-user-property-callback_test.js +1 -1
  84. package/test/delete-user-property-test.js +19 -10
  85. package/test/delete-user-test.js +19 -10
  86. package/test/delete-view-portion-batch_test.js +5 -5
  87. package/test/delete-view-portion-test.js +6 -3
  88. package/test/get-item-property-info-batch_test.js +7 -7
  89. package/test/get-item-values-batch_test.js +6 -6
  90. package/test/get-user-property-info-batch_test.js +7 -7
  91. package/test/get-user-values-batch_test.js +6 -6
  92. package/test/insert-to-group-batch_test.js +30 -20
  93. package/test/insert-to-group-test.js +6 -3
  94. package/test/insert-to-series-batch_test.js +30 -20
  95. package/test/insert-to-series-test.js +6 -3
  96. package/test/list-group-items-batch_test.js +7 -7
  97. package/test/list-groups-batch_test.js +5 -5
  98. package/test/list-item-bookmarks-batch_test.js +7 -7
  99. package/test/list-item-cart-additions-batch_test.js +7 -7
  100. package/test/list-item-detail-views-batch_test.js +7 -7
  101. package/test/list-item-properties-batch_test.js +5 -5
  102. package/test/list-item-purchases-batch_test.js +7 -7
  103. package/test/list-item-ratings-batch_test.js +7 -7
  104. package/test/list-item-view-portions-batch_test.js +7 -7
  105. package/test/list-items-batch_test.js +7 -7
  106. package/test/list-search-synonyms-batch_test.js +44 -0
  107. package/test/list-search-synonyms-callback_test.js +53 -0
  108. package/test/list-search-synonyms-test.js +41 -0
  109. package/test/list-series-batch_test.js +5 -5
  110. package/test/list-series-items-batch_test.js +7 -7
  111. package/test/list-user-bookmarks-batch_test.js +7 -7
  112. package/test/list-user-cart-additions-batch_test.js +7 -7
  113. package/test/list-user-detail-views-batch_test.js +7 -7
  114. package/test/list-user-properties-batch_test.js +5 -5
  115. package/test/list-user-purchases-batch_test.js +7 -7
  116. package/test/list-user-ratings-batch_test.js +7 -7
  117. package/test/list-user-view-portions-batch_test.js +7 -7
  118. package/test/list-users-batch_test.js +7 -7
  119. package/test/merge-users-batch_test.js +19 -14
  120. package/test/merge-users-test.js +6 -3
  121. package/test/recommend-items-to-item-batch_test.js +6 -6
  122. package/test/recommend-items-to-user-batch_test.js +6 -6
  123. package/test/recommend-next-items-batch_test.js +45 -0
  124. package/test/recommend-next-items-callback_test.js +54 -0
  125. package/test/recommend-next-items-test.js +42 -0
  126. package/test/recommend-users-to-item-batch_test.js +6 -6
  127. package/test/recommend-users-to-user-batch_test.js +6 -6
  128. package/test/remove-from-group-batch_test.js +5 -5
  129. package/test/remove-from-group-test.js +6 -3
  130. package/test/remove-from-series-batch_test.js +6 -6
  131. package/test/remove-from-series-test.js +12 -6
  132. package/test/search-items-batch_test.js +9 -9
  133. package/test/set-environment.js +6 -4
  134. package/test/set-item-values-batch_test.js +9 -9
  135. package/test/set-item-values-test.js +6 -3
  136. package/test/set-user-values-batch_test.js +9 -9
  137. package/test/set-user-values-test.js +6 -3
  138. package/test/set-view-portion-batch_test.js +10 -10
  139. package/test/set-view-portion-test.js +30 -15
  140. package/test/update-more-items-batch_test.js +35 -0
  141. package/test/update-more-items-callback_test.js +37 -0
  142. package/test/update-more-items-test.js +33 -0
  143. package/lib/requests/item-based-recommendation.js +0 -187
  144. package/lib/requests/user-based-recommendation.js +0 -168
  145. package/test/item-based-recommendation-batch_test.js +0 -41
  146. package/test/item-based-recommendation-callback_test.js +0 -65
  147. package/test/item-based-recommendation-test.js +0 -53
  148. package/test/user-based-recommendation-batch_test.js +0 -41
  149. package/test/user-based-recommendation-callback_test.js +0 -65
  150. package/test/user-based-recommendation-test.js +0 -53
@@ -49,7 +49,8 @@ class RecommendUsersToItem extends rqs.Request {
49
49
  * "sex": "M"
50
50
  * }
51
51
  * }
52
- * ]
52
+ * ],
53
+ * "numberNextRecommsCalls": 0
53
54
  * }
54
55
  * ```
55
56
  * - *includedProperties*
@@ -73,7 +74,8 @@ class RecommendUsersToItem extends rqs.Request {
73
74
  * "country": "CAN"
74
75
  * }
75
76
  * }
76
- * ]
77
+ * ],
78
+ * "numberNextRecommsCalls": 0
77
79
  * }
78
80
  * ```
79
81
  * - *filter*
@@ -49,8 +49,9 @@ class RecommendUsersToUser extends rqs.Request {
49
49
  * "sex": "M"
50
50
  * }
51
51
  * }
52
- * ]
53
- * }
52
+ * ],
53
+ * "numberNextRecommsCalls": 0
54
+ * }
54
55
  * ```
55
56
  * - *includedProperties*
56
57
  * - Type: string[]
@@ -73,7 +74,8 @@ class RecommendUsersToUser extends rqs.Request {
73
74
  * "country": "CAN"
74
75
  * }
75
76
  * }
76
- * ]
77
+ * ],
78
+ * "numberNextRecommsCalls": 0
77
79
  * }
78
80
  * ```
79
81
  * - *filter*
@@ -9,8 +9,11 @@ const rqs = require("./request");
9
9
  * Full-text personalized search. The results are based on the provided `searchQuery` and also on the user's past interactions (purchases, ratings, etc.) with the items (items more suitable for the user are preferred in the results).
10
10
  * All the string and set item properties are indexed by the search engine.
11
11
  * This endpoint should be used in a search box at your website/app. It can be called multiple times as the user is typing the query in order to get the most viable suggestions based on current state of the query, or once after submitting the whole query.
12
+ * The returned items are sorted by relevance (first item being the most relevant).
13
+ * Besides the recommended items, also a unique `recommId` is returned in the response. It can be used to:
14
+ * - Let Recombee know that this search was successful (e.g. user clicked one of the recommended items). See [Reported metrics](https://docs.recombee.com/admin_ui.html#reported-metrics).
15
+ * - Get subsequent search results when the user scrolls down or goes to the next page. See [Recommend Next Items](https://docs.recombee.com/api.html#recommend-next-items).
12
16
  * It is also possible to use POST HTTP method (for example in case of very long ReQL filter) - query parameters then become body parameters.
13
- * The returned items are sorted by relevancy (first item being the most relevant).
14
17
  */
15
18
  class SearchItems extends rqs.Request {
16
19
 
@@ -56,7 +59,8 @@ class SearchItems extends rqs.Request {
56
59
  * "url": "myshop.com/mixer-42"
57
60
  * }
58
61
  * }
59
- * ]
62
+ * ],
63
+ * "numberNextRecommsCalls": 0
60
64
  * }
61
65
  * ```
62
66
  * - *includedProperties*
@@ -82,7 +86,8 @@ class SearchItems extends rqs.Request {
82
86
  * "price": 39
83
87
  * }
84
88
  * }
85
- * ]
89
+ * ],
90
+ * "numberNextRecommsCalls": 0
86
91
  * }
87
92
  * ```
88
93
  * - *filter*
@@ -0,0 +1,53 @@
1
+ /*
2
+ This file is auto-generated, do not edit
3
+ */
4
+
5
+ 'use strict';
6
+ const rqs = require("./request");
7
+
8
+ /**
9
+ * Update (some) property values of all the items that pass the filter.
10
+ * Example: *Setting all the items that are older than a week as unavailable*
11
+ * ```
12
+ * {
13
+ * "filter": "'releaseDate' < now() - 7*24*3600",
14
+ * "changes": {"available": false}
15
+ * }
16
+ * ```
17
+ */
18
+ class UpdateMoreItems extends rqs.Request {
19
+
20
+ /**
21
+ * Construct the request
22
+ * @param {string} filter - A [ReQL](https://docs.recombee.com/reql.html) expression, which return `true` for the items that shall be updated.
23
+ * @param {} changes - A dictionary where the keys are properties which shall be updated.
24
+ */
25
+ constructor(filter, changes) {
26
+ super('POST', '/more-items/', 1000, false);
27
+ this.filter = filter;
28
+ this.changes = changes;
29
+ }
30
+
31
+ /**
32
+ * Get body parameters
33
+ * @return {Object} The values of body parameters (name of parameter: value of the parameter)
34
+ */
35
+ bodyParameters() {
36
+ let params = {};
37
+ params.filter = this.filter;
38
+ params.changes = this.changes;
39
+
40
+ return params;
41
+ }
42
+
43
+ /**
44
+ * Get query parameters
45
+ * @return {Object} The values of query parameters (name of parameter: value of the parameter)
46
+ */
47
+ queryParameters() {
48
+ let params = {};
49
+ return params;
50
+ }
51
+ }
52
+
53
+ exports.UpdateMoreItems = UpdateMoreItems
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "recombee-api-client",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Node.js client (SDK) for easy use of the Recombee recommendation API",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -26,8 +26,7 @@
26
26
  },
27
27
  "homepage": "https://github.com/Recombee/node-api-client#readme",
28
28
  "dependencies": {
29
- "request-promise": "^4.2.5",
30
- "request": "^2.88.0",
29
+ "got": "^11.8.2",
31
30
  "jssha": "^2.3.0"
32
31
  },
33
32
  "devDependencies": {
@@ -29,19 +29,19 @@ describe('AddBookmark', function(){
29
29
  new rqs.AddBookmark('entity_id','entity_id',{'timestamp': -15}),
30
30
  new rqs.AddBookmark('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5}),
31
31
  new rqs.AddBookmark('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5})
32
- ];
33
-
32
+ ];
33
+
34
34
  env.client.send(new rqs.Batch(requests))
35
35
  .then((responses) => {
36
- chai.equal(responses[0].code, 200);
37
- chai.equal(responses[1].code, 200);
38
- chai.equal(responses[2].code, 200);
39
- chai.equal(responses[3].code, 404);
40
- chai.equal(responses[4].code, 404);
41
- chai.equal(responses[5].code, 400);
42
- chai.equal(responses[6].code, 200);
43
- chai.equal(responses[7].code, 409);
36
+ chai.equal(responses[0].code, 200);
37
+ chai.equal(responses[1].code, 200);
38
+ chai.equal(responses[2].code, 200);
39
+ chai.equal(responses[3].code, 404);
40
+ chai.equal(responses[4].code, 404);
41
+ chai.equal(responses[5].code, 400);
42
+ chai.equal(responses[6].code, 200);
43
+ chai.equal(responses[7].code, 409);
44
44
  done();
45
45
  });
46
46
  });
47
- });
47
+ });
@@ -55,9 +55,12 @@ describe('AddBookmark', function(){
55
55
  chai.fail();
56
56
  done();
57
57
  })
58
- .catch(recombee.errors.ResponseError,(err) => {
59
- chai.equal(err.statusCode, 404);
60
- done();
58
+ .catch((err) => {
59
+ if (err instanceof recombee.errors.ResponseError) {
60
+ chai.equal(err.statusCode, 404);
61
+ done();
62
+ }
63
+ throw err;
61
64
  });
62
65
  });
63
66
 
@@ -69,9 +72,12 @@ describe('AddBookmark', function(){
69
72
  chai.fail();
70
73
  done();
71
74
  })
72
- .catch(recombee.errors.ResponseError,(err) => {
73
- chai.equal(err.statusCode, 404);
74
- done();
75
+ .catch((err) => {
76
+ if (err instanceof recombee.errors.ResponseError) {
77
+ chai.equal(err.statusCode, 404);
78
+ done();
79
+ }
80
+ throw err;
75
81
  });
76
82
  });
77
83
 
@@ -83,9 +89,12 @@ describe('AddBookmark', function(){
83
89
  chai.fail();
84
90
  done();
85
91
  })
86
- .catch(recombee.errors.ResponseError,(err) => {
87
- chai.equal(err.statusCode, 400);
88
- done();
92
+ .catch((err) => {
93
+ if (err instanceof recombee.errors.ResponseError) {
94
+ chai.equal(err.statusCode, 400);
95
+ done();
96
+ }
97
+ throw err;
89
98
  });
90
99
  });
91
100
 
@@ -99,9 +108,12 @@ describe('AddBookmark', function(){
99
108
  chai.fail();
100
109
  done();
101
110
  })
102
- .catch(recombee.errors.ResponseError,(err) => {
103
- chai.equal(err.statusCode, 409);
104
- done();
111
+ .catch((err) => {
112
+ if (err instanceof recombee.errors.ResponseError) {
113
+ chai.equal(err.statusCode, 409);
114
+ done();
115
+ }
116
+ throw err;
105
117
  });
106
118
  });
107
119
  });
@@ -29,19 +29,19 @@ describe('AddCartAddition', function(){
29
29
  new rqs.AddCartAddition('entity_id','entity_id',{'timestamp': -15}),
30
30
  new rqs.AddCartAddition('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5}),
31
31
  new rqs.AddCartAddition('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5})
32
- ];
33
-
32
+ ];
33
+
34
34
  env.client.send(new rqs.Batch(requests))
35
35
  .then((responses) => {
36
- chai.equal(responses[0].code, 200);
37
- chai.equal(responses[1].code, 200);
38
- chai.equal(responses[2].code, 200);
39
- chai.equal(responses[3].code, 404);
40
- chai.equal(responses[4].code, 404);
41
- chai.equal(responses[5].code, 400);
42
- chai.equal(responses[6].code, 200);
43
- chai.equal(responses[7].code, 409);
36
+ chai.equal(responses[0].code, 200);
37
+ chai.equal(responses[1].code, 200);
38
+ chai.equal(responses[2].code, 200);
39
+ chai.equal(responses[3].code, 404);
40
+ chai.equal(responses[4].code, 404);
41
+ chai.equal(responses[5].code, 400);
42
+ chai.equal(responses[6].code, 200);
43
+ chai.equal(responses[7].code, 409);
44
44
  done();
45
45
  });
46
46
  });
47
- });
47
+ });
@@ -55,9 +55,12 @@ describe('AddCartAddition', function(){
55
55
  chai.fail();
56
56
  done();
57
57
  })
58
- .catch(recombee.errors.ResponseError,(err) => {
59
- chai.equal(err.statusCode, 404);
60
- done();
58
+ .catch((err) => {
59
+ if (err instanceof recombee.errors.ResponseError) {
60
+ chai.equal(err.statusCode, 404);
61
+ done();
62
+ }
63
+ throw err;
61
64
  });
62
65
  });
63
66
 
@@ -69,9 +72,12 @@ describe('AddCartAddition', function(){
69
72
  chai.fail();
70
73
  done();
71
74
  })
72
- .catch(recombee.errors.ResponseError,(err) => {
73
- chai.equal(err.statusCode, 404);
74
- done();
75
+ .catch((err) => {
76
+ if (err instanceof recombee.errors.ResponseError) {
77
+ chai.equal(err.statusCode, 404);
78
+ done();
79
+ }
80
+ throw err;
75
81
  });
76
82
  });
77
83
 
@@ -83,9 +89,12 @@ describe('AddCartAddition', function(){
83
89
  chai.fail();
84
90
  done();
85
91
  })
86
- .catch(recombee.errors.ResponseError,(err) => {
87
- chai.equal(err.statusCode, 400);
88
- done();
92
+ .catch((err) => {
93
+ if (err instanceof recombee.errors.ResponseError) {
94
+ chai.equal(err.statusCode, 400);
95
+ done();
96
+ }
97
+ throw err;
89
98
  });
90
99
  });
91
100
 
@@ -99,9 +108,12 @@ describe('AddCartAddition', function(){
99
108
  chai.fail();
100
109
  done();
101
110
  })
102
- .catch(recombee.errors.ResponseError,(err) => {
103
- chai.equal(err.statusCode, 409);
104
- done();
111
+ .catch((err) => {
112
+ if (err instanceof recombee.errors.ResponseError) {
113
+ chai.equal(err.statusCode, 409);
114
+ done();
115
+ }
116
+ throw err;
105
117
  });
106
118
  });
107
119
  });
@@ -29,19 +29,19 @@ describe('AddDetailView', function(){
29
29
  new rqs.AddDetailView('entity_id','entity_id',{'timestamp': -15}),
30
30
  new rqs.AddDetailView('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5}),
31
31
  new rqs.AddDetailView('u_id2','i_id2',{'cascadeCreate': true,'timestamp': 5})
32
- ];
33
-
32
+ ];
33
+
34
34
  env.client.send(new rqs.Batch(requests))
35
35
  .then((responses) => {
36
- chai.equal(responses[0].code, 200);
37
- chai.equal(responses[1].code, 200);
38
- chai.equal(responses[2].code, 200);
39
- chai.equal(responses[3].code, 404);
40
- chai.equal(responses[4].code, 404);
41
- chai.equal(responses[5].code, 400);
42
- chai.equal(responses[6].code, 200);
43
- chai.equal(responses[7].code, 409);
36
+ chai.equal(responses[0].code, 200);
37
+ chai.equal(responses[1].code, 200);
38
+ chai.equal(responses[2].code, 200);
39
+ chai.equal(responses[3].code, 404);
40
+ chai.equal(responses[4].code, 404);
41
+ chai.equal(responses[5].code, 400);
42
+ chai.equal(responses[6].code, 200);
43
+ chai.equal(responses[7].code, 409);
44
44
  done();
45
45
  });
46
46
  });
47
- });
47
+ });
@@ -55,9 +55,12 @@ describe('AddDetailView', function(){
55
55
  chai.fail();
56
56
  done();
57
57
  })
58
- .catch(recombee.errors.ResponseError,(err) => {
59
- chai.equal(err.statusCode, 404);
60
- done();
58
+ .catch((err) => {
59
+ if (err instanceof recombee.errors.ResponseError) {
60
+ chai.equal(err.statusCode, 404);
61
+ done();
62
+ }
63
+ throw err;
61
64
  });
62
65
  });
63
66
 
@@ -69,9 +72,12 @@ describe('AddDetailView', function(){
69
72
  chai.fail();
70
73
  done();
71
74
  })
72
- .catch(recombee.errors.ResponseError,(err) => {
73
- chai.equal(err.statusCode, 404);
74
- done();
75
+ .catch((err) => {
76
+ if (err instanceof recombee.errors.ResponseError) {
77
+ chai.equal(err.statusCode, 404);
78
+ done();
79
+ }
80
+ throw err;
75
81
  });
76
82
  });
77
83
 
@@ -83,9 +89,12 @@ describe('AddDetailView', function(){
83
89
  chai.fail();
84
90
  done();
85
91
  })
86
- .catch(recombee.errors.ResponseError,(err) => {
87
- chai.equal(err.statusCode, 400);
88
- done();
92
+ .catch((err) => {
93
+ if (err instanceof recombee.errors.ResponseError) {
94
+ chai.equal(err.statusCode, 400);
95
+ done();
96
+ }
97
+ throw err;
89
98
  });
90
99
  });
91
100
 
@@ -99,9 +108,12 @@ describe('AddDetailView', function(){
99
108
  chai.fail();
100
109
  done();
101
110
  })
102
- .catch(recombee.errors.ResponseError,(err) => {
103
- chai.equal(err.statusCode, 409);
104
- done();
111
+ .catch((err) => {
112
+ if (err instanceof recombee.errors.ResponseError) {
113
+ chai.equal(err.statusCode, 409);
114
+ done();
115
+ }
116
+ throw err;
105
117
  });
106
118
  });
107
119
  });
@@ -22,18 +22,18 @@ describe('AddGroup', function(){
22
22
  it ('works in batch', (done) => {
23
23
  let requests = [
24
24
  new rqs.AddGroup('valid_id'),
25
- new rqs.AddGroup('$$$not_valid$$$'),
25
+ new rqs.AddGroup('***not_valid$$$'),
26
26
  new rqs.AddGroup('valid_id2'),
27
27
  new rqs.AddGroup('valid_id2')
28
- ];
29
-
28
+ ];
29
+
30
30
  env.client.send(new rqs.Batch(requests))
31
31
  .then((responses) => {
32
- chai.equal(responses[0].code, 201);
33
- chai.equal(responses[1].code, 400);
34
- chai.equal(responses[2].code, 201);
35
- chai.equal(responses[3].code, 409);
32
+ chai.equal(responses[0].code, 201);
33
+ chai.equal(responses[1].code, 400);
34
+ chai.equal(responses[2].code, 201);
35
+ chai.equal(responses[3].code, 409);
36
36
  done();
37
37
  });
38
38
  });
39
- });
39
+ });
@@ -35,7 +35,7 @@ describe('AddGroup', function(){
35
35
 
36
36
  it ('fails with invalid entity id', (done) => {
37
37
  let req, req2, resp;
38
- req = new rqs.AddGroup('$$$not_valid$$$');
38
+ req = new rqs.AddGroup('***not_valid$$$');
39
39
  env.client.send(req,((err,res) => {
40
40
  if(err) {
41
41
  chai.equal(err.name, 'ResponseError');
@@ -31,15 +31,18 @@ describe('AddGroup', function(){
31
31
 
32
32
  it ('fails with invalid entity id', (done) => {
33
33
  let req, req2, resp;
34
- req = new rqs.AddGroup('$$$not_valid$$$');
34
+ req = new rqs.AddGroup('***not_valid$$$');
35
35
  env.client.send(req)
36
36
  .then((res) => {
37
37
  chai.fail();
38
38
  done();
39
39
  })
40
- .catch(recombee.errors.ResponseError,(err) => {
41
- chai.equal(err.statusCode, 400);
42
- done();
40
+ .catch((err) => {
41
+ if (err instanceof recombee.errors.ResponseError) {
42
+ chai.equal(err.statusCode, 400);
43
+ done();
44
+ }
45
+ throw err;
43
46
  });
44
47
  });
45
48
 
@@ -53,9 +56,12 @@ describe('AddGroup', function(){
53
56
  chai.fail();
54
57
  done();
55
58
  })
56
- .catch(recombee.errors.ResponseError,(err) => {
57
- chai.equal(err.statusCode, 409);
58
- done();
59
+ .catch((err) => {
60
+ if (err instanceof recombee.errors.ResponseError) {
61
+ chai.equal(err.statusCode, 409);
62
+ done();
63
+ }
64
+ throw err;
59
65
  });
60
66
  });
61
67
  });
@@ -22,18 +22,18 @@ describe('AddItem', function(){
22
22
  it ('works in batch', (done) => {
23
23
  let requests = [
24
24
  new rqs.AddItem('valid_id'),
25
- new rqs.AddItem('$$$not_valid$$$'),
25
+ new rqs.AddItem('***not_valid$$$'),
26
26
  new rqs.AddItem('valid_id2'),
27
27
  new rqs.AddItem('valid_id2')
28
- ];
29
-
28
+ ];
29
+
30
30
  env.client.send(new rqs.Batch(requests))
31
31
  .then((responses) => {
32
- chai.equal(responses[0].code, 201);
33
- chai.equal(responses[1].code, 400);
34
- chai.equal(responses[2].code, 201);
35
- chai.equal(responses[3].code, 409);
32
+ chai.equal(responses[0].code, 201);
33
+ chai.equal(responses[1].code, 400);
34
+ chai.equal(responses[2].code, 201);
35
+ chai.equal(responses[3].code, 409);
36
36
  done();
37
37
  });
38
38
  });
39
- });
39
+ });
@@ -35,7 +35,7 @@ describe('AddItem', function(){
35
35
 
36
36
  it ('fails with invalid entity id', (done) => {
37
37
  let req, req2, resp;
38
- req = new rqs.AddItem('$$$not_valid$$$');
38
+ req = new rqs.AddItem('***not_valid$$$');
39
39
  env.client.send(req,((err,res) => {
40
40
  if(err) {
41
41
  chai.equal(err.name, 'ResponseError');
@@ -26,16 +26,16 @@ describe('AddItemProperty', function(){
26
26
  new rqs.AddItemProperty('prop','integer'),
27
27
  new rqs.AddItemProperty('number2','int'),
28
28
  new rqs.AddItemProperty('number2','int')
29
- ];
30
-
29
+ ];
30
+
31
31
  env.client.send(new rqs.Batch(requests))
32
32
  .then((responses) => {
33
- chai.equal(responses[0].code, 201);
34
- chai.equal(responses[1].code, 201);
35
- chai.equal(responses[2].code, 400);
36
- chai.equal(responses[3].code, 201);
37
- chai.equal(responses[4].code, 409);
33
+ chai.equal(responses[0].code, 201);
34
+ chai.equal(responses[1].code, 201);
35
+ chai.equal(responses[2].code, 400);
36
+ chai.equal(responses[3].code, 201);
37
+ chai.equal(responses[4].code, 409);
38
38
  done();
39
39
  });
40
40
  });
41
- });
41
+ });
@@ -41,9 +41,12 @@ describe('AddItemProperty', function(){
41
41
  chai.fail();
42
42
  done();
43
43
  })
44
- .catch(recombee.errors.ResponseError,(err) => {
45
- chai.equal(err.statusCode, 400);
46
- done();
44
+ .catch((err) => {
45
+ if (err instanceof recombee.errors.ResponseError) {
46
+ chai.equal(err.statusCode, 400);
47
+ done();
48
+ }
49
+ throw err;
47
50
  });
48
51
  });
49
52
 
@@ -57,9 +60,12 @@ describe('AddItemProperty', function(){
57
60
  chai.fail();
58
61
  done();
59
62
  })
60
- .catch(recombee.errors.ResponseError,(err) => {
61
- chai.equal(err.statusCode, 409);
62
- done();
63
+ .catch((err) => {
64
+ if (err instanceof recombee.errors.ResponseError) {
65
+ chai.equal(err.statusCode, 409);
66
+ done();
67
+ }
68
+ throw err;
63
69
  });
64
70
  });
65
71
  });
@@ -31,15 +31,18 @@ describe('AddItem', function(){
31
31
 
32
32
  it ('fails with invalid entity id', (done) => {
33
33
  let req, req2, resp;
34
- req = new rqs.AddItem('$$$not_valid$$$');
34
+ req = new rqs.AddItem('***not_valid$$$');
35
35
  env.client.send(req)
36
36
  .then((res) => {
37
37
  chai.fail();
38
38
  done();
39
39
  })
40
- .catch(recombee.errors.ResponseError,(err) => {
41
- chai.equal(err.statusCode, 400);
42
- done();
40
+ .catch((err) => {
41
+ if (err instanceof recombee.errors.ResponseError) {
42
+ chai.equal(err.statusCode, 400);
43
+ done();
44
+ }
45
+ throw err;
43
46
  });
44
47
  });
45
48
 
@@ -53,9 +56,12 @@ describe('AddItem', function(){
53
56
  chai.fail();
54
57
  done();
55
58
  })
56
- .catch(recombee.errors.ResponseError,(err) => {
57
- chai.equal(err.statusCode, 409);
58
- done();
59
+ .catch((err) => {
60
+ if (err instanceof recombee.errors.ResponseError) {
61
+ chai.equal(err.statusCode, 409);
62
+ done();
63
+ }
64
+ throw err;
59
65
  });
60
66
  });
61
67
  });