recombee_api_client 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 891734600f45e2e25c9a44617f0e2ce033b6e90c
4
- data.tar.gz: 6aca79bfa8720f2187f14ec117a60b02a4e18995
3
+ metadata.gz: 1bde99964e32a23c23cd61d005f599603129f2e2
4
+ data.tar.gz: 96d02fc53a32d47ae4e16d30a2d5b8a6843856e0
5
5
  SHA512:
6
- metadata.gz: bc1533bd22417f9ddb1fae6ce533e623854d425b966a72d98f2d994796c3aa909e73ef1a3a5cebb92cabd2397f2e7477f2c09765b8e1dfa498a0e9256da9cd73
7
- data.tar.gz: 5a8c325f7bce984ac02e397d9a16dfd21b132178ec836e7dddd509f7ef242c86cc61dc7b5fdabe06239f36e0813682e102d3cd92279e88dd8bd8fb6424799cea
6
+ metadata.gz: e98d77bf0f8cd3ced9173cfc8de8f64f011bd7b56fd3a80ff77c6a9761e2d752039914b51450afd00ef9842cd67fa5f96804b1f3803fd39cb53524da5cd1e4d2
7
+ data.tar.gz: aff19ee2b7da7ea02110fcebf964ae076fb9ef2d21812904d6bf51deab4b9c327d5aa588befee6f867687dcc1f01b2ed4cdc21387f421dc5f565d8f61b09df1e
data/README.md CHANGED
@@ -29,7 +29,7 @@ Or install it yourself as:
29
29
  require 'recombee_api_client'
30
30
  include RecombeeApiClient
31
31
 
32
- client = RecombeeClient('--my-database-id--', '--my-secret-token--')
32
+ client = RecombeeClient('--my-database-id--', '--db-private-token--')
33
33
 
34
34
  # Generate some random purchases of items by users
35
35
  NUM = 100
@@ -71,7 +71,7 @@ include RecombeeApiClient
71
71
  NUM = 100
72
72
  PROBABILITY_PURCHASED = 0.1
73
73
 
74
- client = RecombeeClient('--my-database-id--', '--my-secret-token--')
74
+ client = RecombeeClient('--my-database-id--', '--db-private-token--')
75
75
  client.send(ResetDatabase.new) # Clear everything from the database
76
76
 
77
77
  # We will use computers as items in this example
@@ -10,7 +10,7 @@ module RecombeeApiClient
10
10
  #Adds a bookmark of a given item made by a given user.
11
11
  #
12
12
  class AddBookmark < ApiRequest
13
- attr_reader :user_id, :item_id, :timestamp, :cascade_create, :recomm_id
13
+ attr_reader :user_id, :item_id, :timestamp, :cascade_create, :recomm_id, :additional_data
14
14
  attr_accessor :timeout
15
15
  attr_accessor :ensure_https
16
16
 
@@ -23,6 +23,7 @@ module RecombeeApiClient
23
23
  # - +timestamp+ -> UTC timestamp of the bookmark as ISO8601-1 pattern or UTC epoch time. The default value is the current time.
24
24
  # - +cascadeCreate+ -> Sets whether the given user/item should be created if not present in the database.
25
25
  # - +recommId+ -> If this bookmark is based on a recommendation request, `recommId` is the id of the clicked recommendation.
26
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
26
27
  #
27
28
  def initialize(user_id, item_id, optional = {})
28
29
  @user_id = user_id
@@ -31,11 +32,12 @@ module RecombeeApiClient
31
32
  @timestamp = optional['timestamp']
32
33
  @cascade_create = optional['cascadeCreate']
33
34
  @recomm_id = optional['recommId']
35
+ @additional_data = optional['additionalData']
34
36
  @optional = optional
35
37
  @timeout = 1000
36
38
  @ensure_https = false
37
39
  @optional.each do |par, _|
38
- fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","recommId"].include? par
40
+ fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","recommId","additionalData"].include? par
39
41
  end
40
42
  end
41
43
 
@@ -52,6 +54,7 @@ module RecombeeApiClient
52
54
  p['timestamp'] = @optional['timestamp'] if @optional.include? 'timestamp'
53
55
  p['cascadeCreate'] = @optional['cascadeCreate'] if @optional.include? 'cascadeCreate'
54
56
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
57
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
55
58
  p
56
59
  end
57
60
 
@@ -10,7 +10,7 @@ module RecombeeApiClient
10
10
  #Adds a cart addition of a given item made by a given user.
11
11
  #
12
12
  class AddCartAddition < ApiRequest
13
- attr_reader :user_id, :item_id, :timestamp, :cascade_create, :amount, :price, :recomm_id
13
+ attr_reader :user_id, :item_id, :timestamp, :cascade_create, :amount, :price, :recomm_id, :additional_data
14
14
  attr_accessor :timeout
15
15
  attr_accessor :ensure_https
16
16
 
@@ -25,6 +25,7 @@ module RecombeeApiClient
25
25
  # - +amount+ -> Amount (number) added to cart. The default is 1. For example if `user-x` adds two `item-y` during a single order (session...), the `amount` should equal to 2.
26
26
  # - +price+ -> Price of the added item. If `amount` is greater than 1, sum of prices of all the items should be given.
27
27
  # - +recommId+ -> If this cart addition is based on a recommendation request, `recommId` is the id of the clicked recommendation.
28
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
28
29
  #
29
30
  def initialize(user_id, item_id, optional = {})
30
31
  @user_id = user_id
@@ -35,11 +36,12 @@ module RecombeeApiClient
35
36
  @amount = optional['amount']
36
37
  @price = optional['price']
37
38
  @recomm_id = optional['recommId']
39
+ @additional_data = optional['additionalData']
38
40
  @optional = optional
39
41
  @timeout = 1000
40
42
  @ensure_https = false
41
43
  @optional.each do |par, _|
42
- fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","amount","price","recommId"].include? par
44
+ fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","amount","price","recommId","additionalData"].include? par
43
45
  end
44
46
  end
45
47
 
@@ -58,6 +60,7 @@ module RecombeeApiClient
58
60
  p['amount'] = @optional['amount'] if @optional.include? 'amount'
59
61
  p['price'] = @optional['price'] if @optional.include? 'price'
60
62
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
63
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
61
64
  p
62
65
  end
63
66
 
@@ -10,7 +10,7 @@ module RecombeeApiClient
10
10
  #Adds a detail view of a given item made by a given user.
11
11
  #
12
12
  class AddDetailView < ApiRequest
13
- attr_reader :user_id, :item_id, :timestamp, :duration, :cascade_create, :recomm_id
13
+ attr_reader :user_id, :item_id, :timestamp, :duration, :cascade_create, :recomm_id, :additional_data
14
14
  attr_accessor :timeout
15
15
  attr_accessor :ensure_https
16
16
 
@@ -24,6 +24,7 @@ module RecombeeApiClient
24
24
  # - +duration+ -> Duration of the view
25
25
  # - +cascadeCreate+ -> Sets whether the given user/item should be created if not present in the database.
26
26
  # - +recommId+ -> If this detail view is based on a recommendation request, `recommId` is the id of the clicked recommendation.
27
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
27
28
  #
28
29
  def initialize(user_id, item_id, optional = {})
29
30
  @user_id = user_id
@@ -33,11 +34,12 @@ module RecombeeApiClient
33
34
  @duration = optional['duration']
34
35
  @cascade_create = optional['cascadeCreate']
35
36
  @recomm_id = optional['recommId']
37
+ @additional_data = optional['additionalData']
36
38
  @optional = optional
37
39
  @timeout = 1000
38
40
  @ensure_https = false
39
41
  @optional.each do |par, _|
40
- fail UnknownOptionalParameter.new(par) unless ["timestamp","duration","cascadeCreate","recommId"].include? par
42
+ fail UnknownOptionalParameter.new(par) unless ["timestamp","duration","cascadeCreate","recommId","additionalData"].include? par
41
43
  end
42
44
  end
43
45
 
@@ -55,6 +57,7 @@ module RecombeeApiClient
55
57
  p['duration'] = @optional['duration'] if @optional.include? 'duration'
56
58
  p['cascadeCreate'] = @optional['cascadeCreate'] if @optional.include? 'cascadeCreate'
57
59
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
60
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
58
61
  p
59
62
  end
60
63
 
@@ -10,7 +10,7 @@ module RecombeeApiClient
10
10
  #Adds a purchase of a given item made by a given user.
11
11
  #
12
12
  class AddPurchase < ApiRequest
13
- attr_reader :user_id, :item_id, :timestamp, :cascade_create, :amount, :price, :profit, :recomm_id
13
+ attr_reader :user_id, :item_id, :timestamp, :cascade_create, :amount, :price, :profit, :recomm_id, :additional_data
14
14
  attr_accessor :timeout
15
15
  attr_accessor :ensure_https
16
16
 
@@ -26,6 +26,7 @@ module RecombeeApiClient
26
26
  # - +price+ -> Price paid by the user for the item. If `amount` is greater than 1, sum of prices of all the items should be given.
27
27
  # - +profit+ -> Your profit from the purchased item. The profit is natural in e-commerce domain (for example if `user-x` purchases `item-y` for $100 and the gross margin is 30 %, then the profit is $30), but is applicable also in other domains (for example at a news company it may be income from displayed advertisement on article page). If `amount` is greater than 1, sum of profit of all the items should be given.
28
28
  # - +recommId+ -> If this purchase is based on a recommendation request, `recommId` is the id of the clicked recommendation.
29
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
29
30
  #
30
31
  def initialize(user_id, item_id, optional = {})
31
32
  @user_id = user_id
@@ -37,11 +38,12 @@ module RecombeeApiClient
37
38
  @price = optional['price']
38
39
  @profit = optional['profit']
39
40
  @recomm_id = optional['recommId']
41
+ @additional_data = optional['additionalData']
40
42
  @optional = optional
41
43
  @timeout = 1000
42
44
  @ensure_https = false
43
45
  @optional.each do |par, _|
44
- fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","amount","price","profit","recommId"].include? par
46
+ fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","amount","price","profit","recommId","additionalData"].include? par
45
47
  end
46
48
  end
47
49
 
@@ -61,6 +63,7 @@ module RecombeeApiClient
61
63
  p['price'] = @optional['price'] if @optional.include? 'price'
62
64
  p['profit'] = @optional['profit'] if @optional.include? 'profit'
63
65
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
66
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
64
67
  p
65
68
  end
66
69
 
@@ -10,7 +10,7 @@ module RecombeeApiClient
10
10
  #Adds a rating of given item made by a given user.
11
11
  #
12
12
  class AddRating < ApiRequest
13
- attr_reader :user_id, :item_id, :timestamp, :rating, :cascade_create, :recomm_id
13
+ attr_reader :user_id, :item_id, :timestamp, :rating, :cascade_create, :recomm_id, :additional_data
14
14
  attr_accessor :timeout
15
15
  attr_accessor :ensure_https
16
16
 
@@ -24,6 +24,7 @@ module RecombeeApiClient
24
24
  # - +timestamp+ -> UTC timestamp of the rating as ISO8601-1 pattern or UTC epoch time. The default value is the current time.
25
25
  # - +cascadeCreate+ -> Sets whether the given user/item should be created if not present in the database.
26
26
  # - +recommId+ -> If this rating is based on a recommendation request, `recommId` is the id of the clicked recommendation.
27
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
27
28
  #
28
29
  def initialize(user_id, item_id, rating, optional = {})
29
30
  @user_id = user_id
@@ -33,11 +34,12 @@ module RecombeeApiClient
33
34
  @timestamp = optional['timestamp']
34
35
  @cascade_create = optional['cascadeCreate']
35
36
  @recomm_id = optional['recommId']
37
+ @additional_data = optional['additionalData']
36
38
  @optional = optional
37
39
  @timeout = 1000
38
40
  @ensure_https = false
39
41
  @optional.each do |par, _|
40
- fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","recommId"].include? par
42
+ fail UnknownOptionalParameter.new(par) unless ["timestamp","cascadeCreate","recommId","additionalData"].include? par
41
43
  end
42
44
  end
43
45
 
@@ -55,6 +57,7 @@ module RecombeeApiClient
55
57
  p['timestamp'] = @optional['timestamp'] if @optional.include? 'timestamp'
56
58
  p['cascadeCreate'] = @optional['cascadeCreate'] if @optional.include? 'cascadeCreate'
57
59
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
60
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
58
61
  p
59
62
  end
60
63
 
@@ -11,8 +11,10 @@ module RecombeeApiClient
11
11
  #
12
12
  #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
13
  #
14
+ #The returned items are sorted by relevancy (first item being the most relevant).
15
+ #
14
16
  class RecommendItemsToItem < ApiRequest
15
- attr_reader :item_id, :target_user_id, :count, :user_impact, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings
17
+ attr_reader :item_id, :target_user_id, :count, :user_impact, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings, :return_ab_group
16
18
  attr_accessor :timeout
17
19
  attr_accessor :ensure_https
18
20
 
@@ -112,6 +114,8 @@ module RecombeeApiClient
112
114
  #
113
115
  # - +expertSettings+ -> Dictionary of custom options.
114
116
  #
117
+ # - +returnAbGroup+ -> If there is a custom AB-testing running, return name of group to which the request belongs.
118
+ #
115
119
  #
116
120
  def initialize(item_id, target_user_id, count, optional = {})
117
121
  @item_id = item_id
@@ -130,11 +134,12 @@ module RecombeeApiClient
130
134
  @rotation_rate = optional['rotationRate']
131
135
  @rotation_time = optional['rotationTime']
132
136
  @expert_settings = optional['expertSettings']
137
+ @return_ab_group = optional['returnAbGroup']
133
138
  @optional = optional
134
139
  @timeout = 3000
135
140
  @ensure_https = false
136
141
  @optional.each do |par, _|
137
- fail UnknownOptionalParameter.new(par) unless ["userImpact","filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings"].include? par
142
+ fail UnknownOptionalParameter.new(par) unless ["userImpact","filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings","returnAbGroup"].include? par
138
143
  end
139
144
  end
140
145
 
@@ -160,6 +165,7 @@ module RecombeeApiClient
160
165
  p['rotationRate'] = @optional['rotationRate'] if @optional.include? 'rotationRate'
161
166
  p['rotationTime'] = @optional['rotationTime'] if @optional.include? 'rotationTime'
162
167
  p['expertSettings'] = @optional['expertSettings'] if @optional.include? 'expertSettings'
168
+ p['returnAbGroup'] = @optional['returnAbGroup'] if @optional.include? 'returnAbGroup'
163
169
  p
164
170
  end
165
171
 
@@ -11,8 +11,10 @@ module RecombeeApiClient
11
11
  #
12
12
  #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
13
  #
14
+ #The returned items are sorted by relevancy (first item being the most relevant).
15
+ #
14
16
  class RecommendItemsToUser < ApiRequest
15
- attr_reader :user_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings
17
+ attr_reader :user_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings, :return_ab_group
16
18
  attr_accessor :timeout
17
19
  attr_accessor :ensure_https
18
20
 
@@ -92,6 +94,8 @@ module RecombeeApiClient
92
94
  #
93
95
  # - +expertSettings+ -> Dictionary of custom options.
94
96
  #
97
+ # - +returnAbGroup+ -> If there is a custom AB-testing running, return name of group to which the request belongs.
98
+ #
95
99
  #
96
100
  def initialize(user_id, count, optional = {})
97
101
  @user_id = user_id
@@ -108,11 +112,12 @@ module RecombeeApiClient
108
112
  @rotation_rate = optional['rotationRate']
109
113
  @rotation_time = optional['rotationTime']
110
114
  @expert_settings = optional['expertSettings']
115
+ @return_ab_group = optional['returnAbGroup']
111
116
  @optional = optional
112
117
  @timeout = 3000
113
118
  @ensure_https = false
114
119
  @optional.each do |par, _|
115
- fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings"].include? par
120
+ fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings","returnAbGroup"].include? par
116
121
  end
117
122
  end
118
123
 
@@ -136,6 +141,7 @@ module RecombeeApiClient
136
141
  p['rotationRate'] = @optional['rotationRate'] if @optional.include? 'rotationRate'
137
142
  p['rotationTime'] = @optional['rotationTime'] if @optional.include? 'rotationTime'
138
143
  p['expertSettings'] = @optional['expertSettings'] if @optional.include? 'expertSettings'
144
+ p['returnAbGroup'] = @optional['returnAbGroup'] if @optional.include? 'returnAbGroup'
139
145
  p
140
146
  end
141
147
 
@@ -11,8 +11,10 @@ module RecombeeApiClient
11
11
  #
12
12
  #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
13
  #
14
+ #The returned users are sorted by predicted interest in the item (first user being the most interested).
15
+ #
14
16
  class RecommendUsersToItem < ApiRequest
15
- attr_reader :item_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :expert_settings
17
+ attr_reader :item_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :expert_settings, :return_ab_group
16
18
  attr_accessor :timeout
17
19
  attr_accessor :ensure_https
18
20
 
@@ -80,6 +82,8 @@ module RecombeeApiClient
80
82
  #
81
83
  # - +expertSettings+ -> Dictionary of custom options.
82
84
  #
85
+ # - +returnAbGroup+ -> If there is a custom AB-testing running, return name of group to which the request belongs.
86
+ #
83
87
  #
84
88
  def initialize(item_id, count, optional = {})
85
89
  @item_id = item_id
@@ -93,11 +97,12 @@ module RecombeeApiClient
93
97
  @included_properties = optional['includedProperties']
94
98
  @diversity = optional['diversity']
95
99
  @expert_settings = optional['expertSettings']
100
+ @return_ab_group = optional['returnAbGroup']
96
101
  @optional = optional
97
102
  @timeout = 50000
98
103
  @ensure_https = false
99
104
  @optional.each do |par, _|
100
- fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","expertSettings"].include? par
105
+ fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","expertSettings","returnAbGroup"].include? par
101
106
  end
102
107
  end
103
108
 
@@ -118,6 +123,7 @@ module RecombeeApiClient
118
123
  p['includedProperties'] = @optional['includedProperties'] if @optional.include? 'includedProperties'
119
124
  p['diversity'] = @optional['diversity'] if @optional.include? 'diversity'
120
125
  p['expertSettings'] = @optional['expertSettings'] if @optional.include? 'expertSettings'
126
+ p['returnAbGroup'] = @optional['returnAbGroup'] if @optional.include? 'returnAbGroup'
121
127
  p
122
128
  end
123
129
 
@@ -11,8 +11,10 @@ module RecombeeApiClient
11
11
  #
12
12
  #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
13
  #
14
+ #The returned users are sorted by similarity (first user being the most similar).
15
+ #
14
16
  class RecommendUsersToUser < ApiRequest
15
- attr_reader :user_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings
17
+ attr_reader :user_id, :count, :filter, :booster, :cascade_create, :scenario, :return_properties, :included_properties, :diversity, :min_relevance, :rotation_rate, :rotation_time, :expert_settings, :return_ab_group
16
18
  attr_accessor :timeout
17
19
  attr_accessor :ensure_https
18
20
 
@@ -86,6 +88,8 @@ module RecombeeApiClient
86
88
  #
87
89
  # - +expertSettings+ -> Dictionary of custom options.
88
90
  #
91
+ # - +returnAbGroup+ -> If there is a custom AB-testing running, return name of group to which the request belongs.
92
+ #
89
93
  #
90
94
  def initialize(user_id, count, optional = {})
91
95
  @user_id = user_id
@@ -102,11 +106,12 @@ module RecombeeApiClient
102
106
  @rotation_rate = optional['rotationRate']
103
107
  @rotation_time = optional['rotationTime']
104
108
  @expert_settings = optional['expertSettings']
109
+ @return_ab_group = optional['returnAbGroup']
105
110
  @optional = optional
106
111
  @timeout = 50000
107
112
  @ensure_https = false
108
113
  @optional.each do |par, _|
109
- fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings"].include? par
114
+ fail UnknownOptionalParameter.new(par) unless ["filter","booster","cascadeCreate","scenario","returnProperties","includedProperties","diversity","minRelevance","rotationRate","rotationTime","expertSettings","returnAbGroup"].include? par
110
115
  end
111
116
  end
112
117
 
@@ -130,6 +135,7 @@ module RecombeeApiClient
130
135
  p['rotationRate'] = @optional['rotationRate'] if @optional.include? 'rotationRate'
131
136
  p['rotationTime'] = @optional['rotationTime'] if @optional.include? 'rotationTime'
132
137
  p['expertSettings'] = @optional['expertSettings'] if @optional.include? 'expertSettings'
138
+ p['returnAbGroup'] = @optional['returnAbGroup'] if @optional.include? 'returnAbGroup'
133
139
  p
134
140
  end
135
141
 
@@ -11,7 +11,7 @@ module RecombeeApiClient
11
11
  #If you send new request with the same (`userId`, `itemId`, `sessionId`), the portion gets updated.
12
12
  #
13
13
  class SetViewPortion < ApiRequest
14
- attr_reader :user_id, :item_id, :portion, :session_id, :timestamp, :cascade_create, :recomm_id
14
+ attr_reader :user_id, :item_id, :portion, :session_id, :timestamp, :cascade_create, :recomm_id, :additional_data
15
15
  attr_accessor :timeout
16
16
  attr_accessor :ensure_https
17
17
 
@@ -26,6 +26,7 @@ module RecombeeApiClient
26
26
  # - +timestamp+ -> UTC timestamp of the rating as ISO8601-1 pattern or UTC epoch time. The default value is the current time.
27
27
  # - +cascadeCreate+ -> Sets whether the given user/item should be created if not present in the database.
28
28
  # - +recommId+ -> If this view portion is based on a recommendation request, `recommId` is the id of the clicked recommendation.
29
+ # - +additionalData+ -> A dictionary of additional data for the interaction.
29
30
  #
30
31
  def initialize(user_id, item_id, portion, optional = {})
31
32
  @user_id = user_id
@@ -36,11 +37,12 @@ module RecombeeApiClient
36
37
  @timestamp = optional['timestamp']
37
38
  @cascade_create = optional['cascadeCreate']
38
39
  @recomm_id = optional['recommId']
40
+ @additional_data = optional['additionalData']
39
41
  @optional = optional
40
42
  @timeout = 1000
41
43
  @ensure_https = false
42
44
  @optional.each do |par, _|
43
- fail UnknownOptionalParameter.new(par) unless ["sessionId","timestamp","cascadeCreate","recommId"].include? par
45
+ fail UnknownOptionalParameter.new(par) unless ["sessionId","timestamp","cascadeCreate","recommId","additionalData"].include? par
44
46
  end
45
47
  end
46
48
 
@@ -59,6 +61,7 @@ module RecombeeApiClient
59
61
  p['timestamp'] = @optional['timestamp'] if @optional.include? 'timestamp'
60
62
  p['cascadeCreate'] = @optional['cascadeCreate'] if @optional.include? 'cascadeCreate'
61
63
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
64
+ p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
62
65
  p
63
66
  end
64
67
 
@@ -1,3 +1,3 @@
1
1
  module RecombeeApiClient
2
- VERSION = '2.2.0'
2
+ VERSION = '2.3.0'
3
3
  end
@@ -18,7 +18,7 @@ module RecombeeApiClient
18
18
  include HTTParty
19
19
 
20
20
  BATCH_MAX_SIZE = 10000
21
- USER_AGENT = {'User-Agent' => 'recombee-ruby-api-client/2.2.0'}
21
+ USER_AGENT = {'User-Agent' => 'recombee-ruby-api-client/2.3.0'}
22
22
 
23
23
  ##
24
24
  # - +account+ -> Name of your account at Recombee
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recombee_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondřej Fiedler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-10 00:00:00.000000000 Z
11
+ date: 2019-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json