recombee-api-client 4.1.5 → 5.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 (88) hide show
  1. package/index.js +1 -1
  2. package/lib/api-client.js +20 -15
  3. package/lib/errors/index.js +1 -1
  4. package/lib/index.d.ts +127 -175
  5. package/lib/requests/add-bookmark.js +1 -1
  6. package/lib/requests/add-cart-addition.js +1 -1
  7. package/lib/requests/add-detail-view.js +1 -1
  8. package/lib/requests/add-item-property.js +1 -1
  9. package/lib/requests/add-item.js +1 -1
  10. package/lib/requests/add-purchase.js +1 -1
  11. package/lib/requests/add-rating.js +1 -1
  12. package/lib/requests/add-series.js +12 -2
  13. package/lib/requests/add-user-property.js +1 -1
  14. package/lib/requests/add-user.js +1 -1
  15. package/lib/requests/delete-bookmark.js +1 -1
  16. package/lib/requests/delete-cart-addition.js +1 -1
  17. package/lib/requests/delete-detail-view.js +1 -1
  18. package/lib/requests/delete-item.js +1 -1
  19. package/lib/requests/delete-purchase.js +1 -1
  20. package/lib/requests/delete-rating.js +1 -1
  21. package/lib/requests/delete-series.js +12 -2
  22. package/lib/requests/delete-user.js +1 -1
  23. package/lib/requests/delete-view-portion.js +1 -1
  24. package/lib/requests/get-item-property-info.js +1 -1
  25. package/lib/requests/get-item-values.js +1 -1
  26. package/lib/requests/get-user-values.js +1 -1
  27. package/lib/requests/index.js +1 -6
  28. package/lib/requests/insert-to-series.js +2 -2
  29. package/lib/requests/recommend-item-segments-to-item-segment.js +2 -2
  30. package/lib/requests/recommend-item-segments-to-item.js +2 -2
  31. package/lib/requests/recommend-item-segments-to-user.js +2 -2
  32. package/lib/requests/recommend-items-to-item-segment.js +214 -0
  33. package/lib/requests/remove-from-series.js +4 -7
  34. package/lib/requests/request.js +1 -1
  35. package/lib/requests/set-view-portion.js +1 -1
  36. package/package.json +8 -5
  37. package/test/add-bookmark-batch_test.js +2 -4
  38. package/test/add-bookmark-callback_test.js +0 -15
  39. package/test/add-bookmark-test.js +0 -17
  40. package/test/add-cart-addition-batch_test.js +2 -4
  41. package/test/add-cart-addition-callback_test.js +0 -15
  42. package/test/add-cart-addition-test.js +0 -17
  43. package/test/add-detail-view-batch_test.js +2 -4
  44. package/test/add-detail-view-callback_test.js +0 -15
  45. package/test/add-detail-view-test.js +0 -17
  46. package/test/add-purchase-batch_test.js +2 -4
  47. package/test/add-purchase-callback_test.js +0 -15
  48. package/test/add-purchase-test.js +0 -17
  49. package/test/add-rating-batch_test.js +2 -4
  50. package/test/add-rating-callback_test.js +0 -15
  51. package/test/add-rating-test.js +0 -17
  52. package/test/list-items-batch_test.js +1 -1
  53. package/test/list-items-callback_test.js +1 -1
  54. package/test/list-items-test.js +1 -1
  55. package/test/list-users-batch_test.js +1 -1
  56. package/test/list-users-callback_test.js +1 -1
  57. package/test/list-users-test.js +1 -1
  58. package/test/{list-groups-batch_test.js → recommend-items-to-item-segment-batch_test.js} +4 -5
  59. package/test/{list-groups-callback_test.js → recommend-items-to-item-segment-callback_test.js} +8 -7
  60. package/test/{remove-from-group-test.js → recommend-items-to-item-segment-test.js} +5 -14
  61. package/test/remove-from-series-batch_test.js +4 -6
  62. package/test/remove-from-series-callback_test.js +2 -17
  63. package/test/remove-from-series-test.js +2 -19
  64. package/test/set-environment.js +89 -86
  65. package/test/set-view-portion-batch_test.js +0 -2
  66. package/test/set-view-portion-callback_test.js +0 -15
  67. package/test/set-view-portion-test.js +0 -17
  68. package/lib/requests/add-group.js +0 -42
  69. package/lib/requests/delete-group.js +0 -43
  70. package/lib/requests/insert-to-group.js +0 -58
  71. package/lib/requests/list-group-items.js +0 -42
  72. package/lib/requests/list-groups.js +0 -40
  73. package/lib/requests/remove-from-group.js +0 -48
  74. package/test/add-group-batch_test.js +0 -39
  75. package/test/add-group-callback_test.js +0 -72
  76. package/test/add-group-test.js +0 -68
  77. package/test/delete-group-batch_test.js +0 -39
  78. package/test/delete-group-callback_test.js +0 -74
  79. package/test/delete-group-test.js +0 -76
  80. package/test/insert-to-group-batch_test.js +0 -53
  81. package/test/insert-to-group-callback_test.js +0 -86
  82. package/test/insert-to-group-test.js +0 -68
  83. package/test/list-group-items-batch_test.js +0 -36
  84. package/test/list-group-items-callback_test.js +0 -38
  85. package/test/list-group-items-test.js +0 -34
  86. package/test/list-groups-test.js +0 -32
  87. package/test/remove-from-group-batch_test.js +0 -35
  88. package/test/remove-from-group-callback_test.js +0 -50
@@ -1,113 +1,116 @@
1
- 'use strict'
1
+ 'use strict';
2
2
 
3
3
  var recombee = require('./../index.js');
4
4
  var rqs = recombee.requests;
5
5
  var errs = recombee.errors;
6
6
 
7
- var client = new recombee.ApiClient('client-test', 'jGGQ6ZKa8rQ1zTAyxTc0EMn55YPF7FJLUtaMLhbsGxmvwxgTwXYqmUk5xVZFw98L', {'region': 'eu-west'});
7
+ // Read credentials from environment variables
8
+ const DB_ID = process.env.DB_ID;
9
+ const PRIVATE_TOKEN = process.env.PRIVATE_TOKEN;
10
+
11
+ if (!DB_ID || !PRIVATE_TOKEN) {
12
+ throw new Error('Environment variables DB_ID and PRIVATE_TOKEN must be set.');
13
+ }
14
+
15
+ var client = new recombee.ApiClient(DB_ID, PRIVATE_TOKEN, { region: 'eu-west' });
8
16
 
9
17
  var _setEnvironmentData = (() => {
10
- let requests = new rqs.Batch([
11
-
12
- new rqs.AddItem('entity_id'),
13
- new rqs.AddUser('entity_id'),
14
- new rqs.AddSeries('entity_id'),
15
- new rqs.AddGroup('entity_id'),
16
- new rqs.InsertToGroup('entity_id', 'item', 'entity_id'),
17
- new rqs.InsertToSeries('entity_id', 'item', 'entity_id', 1),
18
- new rqs.AddItemProperty('int_property', 'int'),
19
- new rqs.AddItemProperty('str_property', 'string'),
20
- new rqs.SetItemValues('entity_id', {'int_property': 42, 'str_property': 'hello'}),
21
- new rqs.AddUserProperty('int_property', 'int'),
22
- new rqs.AddUserProperty('str_property', 'string'),
23
- new rqs.SetUserValues('entity_id', {'int_property': 42, 'str_property': 'hello'})
24
- ]);
25
-
26
- return client.send(requests);
18
+ let requests = new rqs.Batch([
19
+ new rqs.AddItem('entity_id'),
20
+ new rqs.AddUser('entity_id'),
21
+ new rqs.AddSeries('entity_id'),
22
+ new rqs.InsertToSeries('entity_id', 'item', 'entity_id', 1),
23
+ new rqs.AddItemProperty('int_property', 'int'),
24
+ new rqs.AddItemProperty('str_property', 'string'),
25
+ new rqs.SetItemValues('entity_id', { 'int_property': 42, 'str_property': 'hello' }),
26
+ new rqs.AddUserProperty('int_property', 'int'),
27
+ new rqs.AddUserProperty('str_property', 'string'),
28
+ new rqs.SetUserValues('entity_id', { 'int_property': 42, 'str_property': 'hello' })
29
+ ]);
30
+
31
+ return client.send(requests);
27
32
  });
28
33
 
29
34
  var _delay = ((t, v) => {
30
- return new Promise(function(resolve) {
31
- setTimeout(resolve.bind(null, v), t)
32
- })
35
+ return new Promise(function (resolve) {
36
+ setTimeout(resolve.bind(null, v), t);
37
+ });
33
38
  });
34
39
 
35
40
  var _checkDbErased = (() => {
36
- return client.send(new rqs.ListItems())
37
- .then((resp) => {
38
- return _setEnvironmentData();
39
- })
40
- .catch((err) => {
41
- if (err instanceof errs.ResponseError && err.statusCode === 422) {
42
- // Wait until DB is erased
43
- return _delay(2000).then(() => {
44
- return _checkDbErased();
45
- });
46
- }
47
- throw err;
48
- })
41
+ return client.send(new rqs.ListItems())
42
+ .then((resp) => {
43
+ return _setEnvironmentData();
44
+ })
45
+ .catch((err) => {
46
+ if (err instanceof errs.ResponseError && err.statusCode === 422) {
47
+ // Wait until DB is erased
48
+ return _delay(2000).then(() => {
49
+ return _checkDbErased();
50
+ });
51
+ }
52
+ throw err;
53
+ });
49
54
  });
50
55
 
51
56
  var setEnvironment = (() => {
52
- return client.send(new rqs.ResetDatabase())
53
- .then((resp) => {
54
- return _checkDbErased();
55
- })
57
+ return _checkDbErased() // Ensure DB is in a clean state before resetting
58
+ .then(() => {
59
+ return client.send(new rqs.ResetDatabase());
60
+ })
61
+ .then((resp) => {
62
+ return _checkDbErased(); // Ensure DB is ready after resetting
63
+ });
56
64
  });
57
65
 
58
66
  var setInteractions = (() => {
59
-
60
- let requests = new rqs.Batch([
61
- new rqs.AddUser('user'),
62
- new rqs.AddItem('item'),
63
- new rqs.AddDetailView('user', 'item', {'timestamp': 0}),
64
- new rqs.AddPurchase('user', 'item', {'timestamp': 0}),
65
- new rqs.AddRating('user', 'item', -1, {'timestamp': 0}),
66
- new rqs.AddCartAddition('user', 'item', {'timestamp': 0}),
67
- new rqs.AddBookmark('user', 'item', {'timestamp': 0}),
68
- new rqs.SetViewPortion('user', 'item',1, {'timestamp': 0})
69
- ]);
70
-
71
- return client.send(requests);
67
+ let requests = new rqs.Batch([
68
+ new rqs.AddUser('user'),
69
+ new rqs.AddItem('item'),
70
+ new rqs.AddDetailView('user', 'item', { 'timestamp': 0 }),
71
+ new rqs.AddPurchase('user', 'item', { 'timestamp': 0 }),
72
+ new rqs.AddRating('user', 'item', -1, { 'timestamp': 0 }),
73
+ new rqs.AddCartAddition('user', 'item', { 'timestamp': 0 }),
74
+ new rqs.AddBookmark('user', 'item', { 'timestamp': 0 }),
75
+ new rqs.SetViewPortion('user', 'item', 1, { 'timestamp': 0 })
76
+ ]);
77
+
78
+ return client.send(requests);
72
79
  });
73
80
 
74
81
  var setRecommEntities = (() => {
75
-
76
- const NUM = 100
77
- const PROBABILITY_PURCHASED = 0.1
78
-
79
- let users = Array.apply(0, Array(NUM)).map(function (_, i) {
80
- return `user-${i}`;
81
- });
82
-
83
- let items = Array.apply(0, Array(NUM)).map(function (_, i) {
84
- return `item-${i}`;
85
- });
86
-
87
- let purchases = [];
88
-
89
- users.forEach((user) => {
90
- let p = items.filter(() => Math.random() < PROBABILITY_PURCHASED);
91
- p.forEach((item) => {purchases.push(new rqs.AddPurchase(user, item))});
92
- });
93
-
94
- return client.send(new rqs.Batch(users.map((u) => {return new rqs.AddUser(u)})))
95
- .then(() => {
96
- return client.send(new rqs.Batch([
97
- new rqs.AddItemProperty('answer', 'int'),
98
- new rqs.AddItemProperty('id2', 'string'),
99
- new rqs.AddItemProperty('empty', 'string')]));
100
- })
101
- .then(() => {
102
- return client.send(new rqs.Batch(items.map((itemId) => {
103
- return new rqs.SetItemValues(itemId, {'answer': 42, 'id2': itemId}, {'cascadeCreate': true})})));
104
- })
105
- .then(() => {
106
- return client.send(new rqs.Batch(purchases));
107
- });
82
+ const NUM = 100;
83
+ const PROBABILITY_PURCHASED = 0.1;
84
+
85
+ let users = Array.from({ length: NUM }, (_, i) => `user-${i}`);
86
+ let items = Array.from({ length: NUM }, (_, i) => `item-${i}`);
87
+
88
+ let purchases = [];
89
+
90
+ users.forEach((user) => {
91
+ let p = items.filter(() => Math.random() < PROBABILITY_PURCHASED);
92
+ p.forEach((item) => { purchases.push(new rqs.AddPurchase(user, item)); });
93
+ });
94
+
95
+ return client.send(new rqs.Batch(users.map((u) => new rqs.AddUser(u))))
96
+ .then(() => {
97
+ return client.send(new rqs.Batch([
98
+ new rqs.AddItemProperty('answer', 'int'),
99
+ new rqs.AddItemProperty('id2', 'string'),
100
+ new rqs.AddItemProperty('empty', 'string')
101
+ ]));
102
+ })
103
+ .then(() => {
104
+ return client.send(new rqs.Batch(items.map((itemId) => {
105
+ return new rqs.SetItemValues(itemId, { 'answer': 42, 'id2': itemId }, { 'cascadeCreate': true });
106
+ })));
107
+ })
108
+ .then(() => {
109
+ return client.send(new rqs.Batch(purchases));
110
+ });
108
111
  });
109
112
 
110
113
  exports.client = client;
111
114
  exports.setEnvironment = setEnvironment;
112
115
  exports.setInteractions = setInteractions;
113
- exports.setRecommEntities = setRecommEntities;
116
+ exports.setRecommEntities = setRecommEntities;
@@ -25,7 +25,6 @@ describe('SetViewPortion', function(){
25
25
  new rqs.SetViewPortion('entity_id','entity_id',0),
26
26
  new rqs.SetViewPortion('entity_id','nonex_id',1),
27
27
  new rqs.SetViewPortion('nonex_id','entity_id',0.5),
28
- new rqs.SetViewPortion('entity_id','entity_id',0,{'timestamp': -15}),
29
28
  new rqs.SetViewPortion('entity_id','entity_id',-2),
30
29
  new rqs.SetViewPortion('entity_id','entity_id',0.7,{'sessionId': 'a****'})
31
30
  ];
@@ -38,7 +37,6 @@ describe('SetViewPortion', function(){
38
37
  chai.equal(responses[3].code, 404);
39
38
  chai.equal(responses[4].code, 400);
40
39
  chai.equal(responses[5].code, 400);
41
- chai.equal(responses[6].code, 400);
42
40
  done();
43
41
  });
44
42
  });
@@ -76,21 +76,6 @@ describe('SetViewPortion', function(){
76
76
  }));
77
77
  });
78
78
 
79
- it ('fails with invalid time', (done) => {
80
- let req, req2, resp;
81
- req = new rqs.SetViewPortion('entity_id','entity_id',0,{'timestamp': -15});
82
- env.client.send(req,((err,res) => {
83
- if(err) {
84
- chai.equal(err.name, 'ResponseError');
85
- chai.equal(err.statusCode, 400);
86
- done();
87
- }
88
- else {
89
- chai.fail();
90
- }
91
- }));
92
- });
93
-
94
79
  it ('fails with invalid portion', (done) => {
95
80
  let req, req2, resp;
96
81
  req = new rqs.SetViewPortion('entity_id','entity_id',-2);
@@ -72,23 +72,6 @@ describe('SetViewPortion', function(){
72
72
  });
73
73
  });
74
74
 
75
- it ('fails with invalid time', (done) => {
76
- let req, req2, resp;
77
- req = new rqs.SetViewPortion('entity_id','entity_id',0,{'timestamp': -15});
78
- env.client.send(req)
79
- .then((res) => {
80
- chai.fail();
81
- done();
82
- })
83
- .catch((err) => {
84
- if (err instanceof recombee.errors.ResponseError) {
85
- chai.equal(err.statusCode, 400);
86
- done();
87
- }
88
- throw err;
89
- });
90
- });
91
-
92
75
  it ('fails with invalid portion', (done) => {
93
76
  let req, req2, resp;
94
77
  req = new rqs.SetViewPortion('entity_id','entity_id',-2);
@@ -1,42 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * Creates a new group in the database.
10
- */
11
- class AddGroup extends rqs.Request {
12
-
13
- /**
14
- * Construct the request
15
- * @param {string} groupId - ID of the group to be created.
16
- */
17
- constructor(groupId) {
18
- super('PUT', `/groups/${groupId}`, 1000, false);
19
- this.groupId = groupId;
20
- }
21
-
22
- /**
23
- * Get body parameters
24
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
25
- */
26
- bodyParameters() {
27
- let params = {};
28
-
29
- return params;
30
- }
31
-
32
- /**
33
- * Get query parameters
34
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
35
- */
36
- queryParameters() {
37
- let params = {};
38
- return params;
39
- }
40
- }
41
-
42
- exports.AddGroup = AddGroup
@@ -1,43 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * Deletes the group of the given `groupId` from the database.
10
- * Deleting a group will only delete the assignment of items to it, not the items themselves!
11
- */
12
- class DeleteGroup extends rqs.Request {
13
-
14
- /**
15
- * Construct the request
16
- * @param {string} groupId - ID of the group to be deleted.
17
- */
18
- constructor(groupId) {
19
- super('DELETE', `/groups/${groupId}`, 1000, false);
20
- this.groupId = groupId;
21
- }
22
-
23
- /**
24
- * Get body parameters
25
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
26
- */
27
- bodyParameters() {
28
- let params = {};
29
-
30
- return params;
31
- }
32
-
33
- /**
34
- * Get query parameters
35
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
36
- */
37
- queryParameters() {
38
- let params = {};
39
- return params;
40
- }
41
- }
42
-
43
- exports.DeleteGroup = DeleteGroup
@@ -1,58 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * Inserts an existing item/group into a group of the given `groupId`.
10
- */
11
- class InsertToGroup extends rqs.Request {
12
-
13
- /**
14
- * Construct the request
15
- * @param {string} groupId - ID of the group to be inserted into.
16
- * @param {string} itemType - `item` iff the regular item from the catalog is to be inserted, `group` iff group is inserted as the item.
17
- * @param {string} itemId - ID of the item iff `itemType` is `item`. ID of the group iff `itemType` is `group`.
18
- * @param {Object} optional - Optional parameters given as an object with structure name of the parameter: value
19
- * - Allowed parameters:
20
- * - *cascadeCreate*
21
- * - Type: boolean
22
- * - Description: Indicates that any non-existing entity specified within the request should be created (as if corresponding PUT requests were invoked). This concerns both the `groupId` and the `groupId`. If `cascadeCreate` is set to true, the behavior also depends on the `itemType`. Either items or group may be created if not present in the database.
23
- */
24
- constructor(groupId, itemType, itemId, optional) {
25
- super('POST', `/groups/${groupId}/items/`, 1000, false);
26
- this.groupId = groupId;
27
- this.itemType = itemType;
28
- this.itemId = itemId;
29
- optional = optional || {};
30
- this.cascadeCreate = optional.cascadeCreate;
31
- }
32
-
33
- /**
34
- * Get body parameters
35
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
36
- */
37
- bodyParameters() {
38
- let params = {};
39
- params.itemType = this.itemType;
40
- params.itemId = this.itemId;
41
-
42
- if(this.cascadeCreate !== undefined)
43
- params.cascadeCreate = this.cascadeCreate;
44
-
45
- return params;
46
- }
47
-
48
- /**
49
- * Get query parameters
50
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
51
- */
52
- queryParameters() {
53
- let params = {};
54
- return params;
55
- }
56
- }
57
-
58
- exports.InsertToGroup = InsertToGroup
@@ -1,42 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * List all the items present in the given group.
10
- */
11
- class ListGroupItems extends rqs.Request {
12
-
13
- /**
14
- * Construct the request
15
- * @param {string} groupId - ID of the group whose items are to be listed.
16
- */
17
- constructor(groupId) {
18
- super('GET', `/groups/${groupId}/items/`, 100000, false);
19
- this.groupId = groupId;
20
- }
21
-
22
- /**
23
- * Get body parameters
24
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
25
- */
26
- bodyParameters() {
27
- let params = {};
28
-
29
- return params;
30
- }
31
-
32
- /**
33
- * Get query parameters
34
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
35
- */
36
- queryParameters() {
37
- let params = {};
38
- return params;
39
- }
40
- }
41
-
42
- exports.ListGroupItems = ListGroupItems
@@ -1,40 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * Gets the list of all the groups currently present in the database.
10
- */
11
- class ListGroups extends rqs.Request {
12
-
13
- /**
14
- * Construct the request
15
- */
16
- constructor() {
17
- super('GET', '/groups/list/', 100000, false);
18
- }
19
-
20
- /**
21
- * Get body parameters
22
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
23
- */
24
- bodyParameters() {
25
- let params = {};
26
-
27
- return params;
28
- }
29
-
30
- /**
31
- * Get query parameters
32
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
33
- */
34
- queryParameters() {
35
- let params = {};
36
- return params;
37
- }
38
- }
39
-
40
- exports.ListGroups = ListGroups
@@ -1,48 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict';
6
- const rqs = require("./request");
7
-
8
- /**
9
- * Removes an existing group item from the group.
10
- */
11
- class RemoveFromGroup extends rqs.Request {
12
-
13
- /**
14
- * Construct the request
15
- * @param {string} groupId - ID of the group from which a group item is to be removed.
16
- * @param {string} itemType - Type of the item to be removed.
17
- * @param {string} itemId - ID of the item iff `itemType` is `item`. ID of the group iff `itemType` is `group`.
18
- */
19
- constructor(groupId, itemType, itemId) {
20
- super('DELETE', `/groups/${groupId}/items/`, 1000, false);
21
- this.groupId = groupId;
22
- this.itemType = itemType;
23
- this.itemId = itemId;
24
- }
25
-
26
- /**
27
- * Get body parameters
28
- * @return {Object} The values of body parameters (name of parameter: value of the parameter)
29
- */
30
- bodyParameters() {
31
- let params = {};
32
-
33
- return params;
34
- }
35
-
36
- /**
37
- * Get query parameters
38
- * @return {Object} The values of query parameters (name of parameter: value of the parameter)
39
- */
40
- queryParameters() {
41
- let params = {};
42
- params.itemType = this.itemType;
43
- params.itemId = this.itemId;
44
- return params;
45
- }
46
- }
47
-
48
- exports.RemoveFromGroup = RemoveFromGroup
@@ -1,39 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict'
6
- var chai = require('chai').assert;
7
- var recombee = require('./../index.js');
8
- var rqs = recombee.requests;
9
-
10
- var env = require('./set-environment.js');
11
-
12
- describe('AddGroup', function(){
13
- this.timeout(150000);
14
-
15
- before(function(done){
16
-
17
- env.setEnvironment()
18
- .then(()=> {
19
- setTimeout(done, 20000);
20
- });
21
- });
22
- it ('works in batch', (done) => {
23
- let requests = [
24
- new rqs.AddGroup('valid_id'),
25
- new rqs.AddGroup('***not_valid$$$'),
26
- new rqs.AddGroup('valid_id2'),
27
- new rqs.AddGroup('valid_id2')
28
- ];
29
-
30
- env.client.send(new rqs.Batch(requests))
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);
36
- done();
37
- });
38
- });
39
- });
@@ -1,72 +0,0 @@
1
- /*
2
- This file is auto-generated, do not edit
3
- */
4
-
5
- 'use strict'
6
- var chai = require('chai').assert;
7
- var recombee = require('./../index.js');
8
- var rqs = recombee.requests;
9
-
10
- var env = require('./set-environment.js');
11
-
12
- describe('AddGroup', function(){
13
- this.timeout(150000);
14
-
15
- before(function(done){
16
-
17
- env.setEnvironment()
18
- .then(()=> {
19
- setTimeout(done, 20000);
20
- });
21
- });
22
-
23
- it ('does not fail with valid entity id', (done) => {
24
- let req, req2, resp;
25
- req = new rqs.AddGroup('valid_id');
26
- env.client.send(req,((err,res) => {
27
- if(err) {
28
- chai.fail();
29
- }
30
- else {
31
- done();
32
- }
33
- }));
34
- });
35
-
36
- it ('fails with invalid entity id', (done) => {
37
- let req, req2, resp;
38
- req = new rqs.AddGroup('***not_valid$$$');
39
- env.client.send(req,((err,res) => {
40
- if(err) {
41
- chai.equal(err.name, 'ResponseError');
42
- chai.equal(err.statusCode, 400);
43
- done();
44
- }
45
- else {
46
- chai.fail();
47
- }
48
- }));
49
- });
50
-
51
- it ('really stores entity to the system', (done) => {
52
- let req, req2, resp;
53
- req = new rqs.AddGroup('valid_id2');
54
- env.client.send(req,((err,res) => {
55
- if(err) {
56
- chai.fail();
57
- }
58
- else {
59
- env.client.send(req,((err,res) => {
60
- if(err) {
61
- chai.equal(err.name, 'ResponseError');
62
- chai.equal(err.statusCode, 409);
63
- done();
64
- }
65
- else {
66
- chai.fail();
67
- }
68
- }));
69
- }
70
- }));
71
- });
72
- });