Class: Algolia::PersonalizationClient

Inherits:
Object
  • Object
show all
Defined in:
lib/algolia/api/personalization_client.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = nil) ⇒ PersonalizationClient

Returns a new instance of PersonalizationClient.



7
8
9
10
11
12
13
# File 'lib/algolia/api/personalization_client.rb', line 7

def initialize(config = nil)
  raise "`config` is missing." if config.nil?
  raise "`app_id` is missing." if config.app_id.nil? || config.app_id == ""
  raise "`api_key` is missing." if config.api_key.nil? || config.api_key == ""

  @api_client = Algolia::ApiClient.new(config)
end

Instance Attribute Details

#api_clientObject

Returns the value of attribute api_client.



5
6
7
# File 'lib/algolia/api/personalization_client.rb', line 5

def api_client
  @api_client
end

Class Method Details

.create(app_id, api_key, region = nil, opts = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/algolia/api/personalization_client.rb', line 15

def self.create(app_id, api_key, region = nil, opts = {})
  hosts = []
  regions = ["eu", "us"]

  if region.is_a?(Hash) && (opts.nil? || opts.empty?)
    opts = region
    region = nil
  end

  if region.nil? || !region.is_a?(String) || !regions.include?(region)
    raise "`region` is required and must be one of the following: #{regions.join(", ")}"
  end

  hosts <<
    Transport::StatefulHost.new(
      "personalization.{region}.algolia.com".sub!("{region}", region),
      accept: CallType::READ | CallType::WRITE
    )

  config = Algolia::Configuration.new(app_id, api_key, hosts, "Personalization", opts)
  create_with_config(config)
end

.create_with_config(config) ⇒ Object



38
39
40
# File 'lib/algolia/api/personalization_client.rb', line 38

def self.create_with_config(config)
  new(config)
end

Instance Method Details

#custom_delete(path, parameters = nil, request_options = {}) ⇒ Object

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (Object)


80
81
82
83
# File 'lib/algolia/api/personalization_client.rb', line 80

def custom_delete(path, parameters = nil, request_options = {})
  response = custom_delete_with_http_info(path, parameters, request_options)
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Object")
end

#custom_delete_with_http_info(path, parameters = nil, request_options = {}) ⇒ Http::Response

Returns the response.

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/algolia/api/personalization_client.rb', line 48

def custom_delete_with_http_info(path, parameters = nil, request_options = {})
  # verify the required parameter 'path' is set
  if @api_client.config.client_side_validation && path.nil?
    raise ArgumentError, "Parameter `path` is required when calling `custom_delete`."
  end

  path = "/{path}".sub("{" + "path" + "}", path.to_s)
  query_params = {}
  query_params = query_params.merge(parameters) unless parameters.nil?
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body]

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.custom_delete",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:DELETE, path, new_options)
end

#custom_get(path, parameters = nil, request_options = {}) ⇒ Object

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (Object)


123
124
125
126
# File 'lib/algolia/api/personalization_client.rb', line 123

def custom_get(path, parameters = nil, request_options = {})
  response = custom_get_with_http_info(path, parameters, request_options)
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Object")
end

#custom_get_with_http_info(path, parameters = nil, request_options = {}) ⇒ Http::Response

Returns the response.

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/algolia/api/personalization_client.rb', line 91

def custom_get_with_http_info(path, parameters = nil, request_options = {})
  # verify the required parameter 'path' is set
  if @api_client.config.client_side_validation && path.nil?
    raise ArgumentError, "Parameter `path` is required when calling `custom_get`."
  end

  path = "/{path}".sub("{" + "path" + "}", path.to_s)
  query_params = {}
  query_params = query_params.merge(parameters) unless parameters.nil?
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body]

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.custom_get",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:GET, path, new_options)
end

#custom_post(path, parameters = nil, body = nil, request_options = {}) ⇒ Object

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • body (Object) (defaults to: nil)

    Parameters to send with the custom request.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (Object)


168
169
170
171
# File 'lib/algolia/api/personalization_client.rb', line 168

def custom_post(path, parameters = nil, body = nil, request_options = {})
  response = custom_post_with_http_info(path, parameters, body, request_options)
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Object")
end

#custom_post_with_http_info(path, parameters = nil, body = nil, request_options = {}) ⇒ Http::Response

Returns the response.

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • body (Object) (defaults to: nil)

    Parameters to send with the custom request.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/algolia/api/personalization_client.rb', line 135

def custom_post_with_http_info(path, parameters = nil, body = nil, request_options = {})
  # verify the required parameter 'path' is set
  if @api_client.config.client_side_validation && path.nil?
    raise ArgumentError, "Parameter `path` is required when calling `custom_post`."
  end

  path = "/{path}".sub("{" + "path" + "}", path.to_s)
  query_params = {}
  query_params = query_params.merge(parameters) unless parameters.nil?
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body] || @api_client.object_to_http_body(body)

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.custom_post",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:POST, path, new_options)
end

#custom_put(path, parameters = nil, body = nil, request_options = {}) ⇒ Object

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • body (Object) (defaults to: nil)

    Parameters to send with the custom request.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (Object)


213
214
215
216
# File 'lib/algolia/api/personalization_client.rb', line 213

def custom_put(path, parameters = nil, body = nil, request_options = {})
  response = custom_put_with_http_info(path, parameters, body, request_options)
  @api_client.deserialize(response.body, request_options[:debug_return_type] || "Object")
end

#custom_put_with_http_info(path, parameters = nil, body = nil, request_options = {}) ⇒ Http::Response

Returns the response.

Parameters:

  • path (String)

    Path of the endpoint, anything after &quot;/1&quot; must be specified. (required)

  • parameters (Hash<String, Object>) (defaults to: nil)

    Query parameters to apply to the current query.

  • body (Object) (defaults to: nil)

    Parameters to send with the custom request.

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
# File 'lib/algolia/api/personalization_client.rb', line 180

def custom_put_with_http_info(path, parameters = nil, body = nil, request_options = {})
  # verify the required parameter 'path' is set
  if @api_client.config.client_side_validation && path.nil?
    raise ArgumentError, "Parameter `path` is required when calling `custom_put`."
  end

  path = "/{path}".sub("{" + "path" + "}", path.to_s)
  query_params = {}
  query_params = query_params.merge(parameters) unless parameters.nil?
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body] || @api_client.object_to_http_body(body)

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.custom_put",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:PUT, path, new_options)
end

#delete_user_profile(user_token, request_options = {}) ⇒ DeleteUserProfileResponse

Deletes a user profile. The response includes a date and time when the user profile can safely be considered deleted.

Required API Key ACLs:

- recommendation

Parameters:

  • user_token (String)

    Unique identifier representing a user for which to fetch the personalization profile. (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (DeleteUserProfileResponse)


257
258
259
260
261
262
263
# File 'lib/algolia/api/personalization_client.rb', line 257

def (user_token, request_options = {})
  response = (user_token, request_options)
  @api_client.deserialize(
    response.body,
    request_options[:debug_return_type] || "Personalization::DeleteUserProfileResponse"
  )
end

#delete_user_profile_with_http_info(user_token, request_options = {}) ⇒ Http::Response

Deletes a user profile. The response includes a date and time when the user profile can safely be considered deleted.

Required API Key ACLs:

- recommendation

Parameters:

  • user_token (String)

    Unique identifier representing a user for which to fetch the personalization profile. (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
# File 'lib/algolia/api/personalization_client.rb', line 225

def (user_token, request_options = {})
  # verify the required parameter 'user_token' is set
  if @api_client.config.client_side_validation && user_token.nil?
    raise ArgumentError, "Parameter `user_token` is required when calling `delete_user_profile`."
  end

  path = "/1/profiles/{userToken}".sub("{" + "userToken" + "}", Transport.encode_uri(user_token.to_s))
  query_params = {}
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body]

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.delete_user_profile",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:DELETE, path, new_options)
end

#get_personalization_strategy(request_options = {}) ⇒ PersonalizationStrategyParams

Retrieves the current personalization strategy.

Required API Key ACLs:

- recommendation

Parameters:

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (PersonalizationStrategyParams)


297
298
299
300
301
302
303
# File 'lib/algolia/api/personalization_client.rb', line 297

def get_personalization_strategy(request_options = {})
  response = get_personalization_strategy_with_http_info(request_options)
  @api_client.deserialize(
    response.body,
    request_options[:debug_return_type] || "Personalization::PersonalizationStrategyParams"
  )
end

#get_personalization_strategy_with_http_info(request_options = {}) ⇒ Http::Response

Retrieves the current personalization strategy.

Required API Key ACLs:

- recommendation

Parameters:

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
# File 'lib/algolia/api/personalization_client.rb', line 271

def get_personalization_strategy_with_http_info(request_options = {})
  path = "/1/strategies/personalization"
  query_params = {}
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body]

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.get_personalization_strategy",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:GET, path, new_options)
end

#get_user_token_profile(user_token, request_options = {}) ⇒ GetUserTokenResponse

Retrieves a user profile and their affinities for different facets.

Required API Key ACLs:

- recommendation

Parameters:

  • user_token (String)

    Unique identifier representing a user for which to fetch the personalization profile. (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (GetUserTokenResponse)


347
348
349
350
351
352
353
# File 'lib/algolia/api/personalization_client.rb', line 347

def get_user_token_profile(user_token, request_options = {})
  response = get_user_token_profile_with_http_info(user_token, request_options)
  @api_client.deserialize(
    response.body,
    request_options[:debug_return_type] || "Personalization::GetUserTokenResponse"
  )
end

#get_user_token_profile_with_http_info(user_token, request_options = {}) ⇒ Http::Response

Retrieves a user profile and their affinities for different facets.

Required API Key ACLs:

- recommendation

Parameters:

  • user_token (String)

    Unique identifier representing a user for which to fetch the personalization profile. (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/algolia/api/personalization_client.rb', line 312

def get_user_token_profile_with_http_info(user_token, request_options = {})
  # verify the required parameter 'user_token' is set
  if @api_client.config.client_side_validation && user_token.nil?
    raise ArgumentError, "Parameter `user_token` is required when calling `get_user_token_profile`."
  end

  path = "/1/profiles/personalization/{userToken}".sub(
    "{" + "userToken" + "}",
    Transport.encode_uri(user_token.to_s)
  )
  query_params = {}
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body]

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.get_user_token_profile",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:GET, path, new_options)
end

#set_personalization_strategy(personalization_strategy_params, request_options = {}) ⇒ SetPersonalizationStrategyResponse

Creates a new personalization strategy.

Required API Key ACLs:

- recommendation

Parameters:

  • personalization_strategy_params (PersonalizationStrategyParams)

    (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:

  • (SetPersonalizationStrategyResponse)


397
398
399
400
401
402
403
# File 'lib/algolia/api/personalization_client.rb', line 397

def set_personalization_strategy(personalization_strategy_params, request_options = {})
  response = set_personalization_strategy_with_http_info(personalization_strategy_params, request_options)
  @api_client.deserialize(
    response.body,
    request_options[:debug_return_type] || "Personalization::SetPersonalizationStrategyResponse"
  )
end

#set_personalization_strategy_with_http_info(personalization_strategy_params, request_options = {}) ⇒ Http::Response

Creates a new personalization strategy.

Required API Key ACLs:

- recommendation

Parameters:

  • personalization_strategy_params (PersonalizationStrategyParams)

    (required)

  • request_options:

    The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)

Returns:



362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/algolia/api/personalization_client.rb', line 362

def set_personalization_strategy_with_http_info(personalization_strategy_params, request_options = {})
  # verify the required parameter 'personalization_strategy_params' is set
  if @api_client.config.client_side_validation && personalization_strategy_params.nil?
    raise(
      ArgumentError,
      "Parameter `personalization_strategy_params` is required when calling `set_personalization_strategy`."
    )
  end

  path = "/1/strategies/personalization"
  query_params = {}
  query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
  header_params = {}
  header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?

  post_body = request_options[:debug_body] || @api_client.object_to_http_body(personalization_strategy_params)

  new_options = request_options.merge(
    :operation => :"PersonalizationClient.set_personalization_strategy",
    :header_params => header_params,
    :query_params => query_params,
    :body => post_body,
    :use_read_transporter => false
  )

  @api_client.call_api(:POST, path, new_options)
end