Class: Algolia::Personalization::Client

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

Direct Known Subclasses

Recommendation::Client

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(personalization_config, opts = {}) ⇒ Client

Initializes the Personalization client

Parameters:

  • personalization_config (Personalization::Config)

    a Personalization::Config object which contains your APP_ID and API_KEY

  • adapter (Hash)

    a customizable set of options

  • logger (Hash)

    a customizable set of options

  • http_requester (Hash)

    a customizable set of options



11
12
13
14
15
16
17
# File 'lib/algolia/personalization_client.rb', line 11

def initialize(personalization_config, opts = {})
  @config      = personalization_config
  adapter      = opts[:adapter] || Defaults::ADAPTER
  logger       = opts[:logger] || LoggerHelper.create
  requester    = opts[:http_requester] || Defaults::REQUESTER_CLASS.new(adapter, logger)
  @transporter = Transport::Transport.new(@config, requester)
end

Class Method Details

.create(app_id, api_key) ⇒ Object

Create a new client providing only app ID and API key

Parameters:

  • app_id (String)

    Algolia application ID

  • api_key (String)

    Algolia API key

Returns:

  • self



26
27
28
29
# File 'lib/algolia/personalization_client.rb', line 26

def self.create(app_id, api_key)
  config = Personalization::Config.new(application_id: app_id, api_key: api_key)
  create_with_config(config)
end

.create_with_config(config) ⇒ Object

Create a new client providing only an Personalization::Config object

Parameters:

Returns:

  • self



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

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

Instance Method Details

#get_personalization_strategy(opts = {}) ⇒ Hash

Get the personalization strategy.

Returns:

  • (Hash)


55
56
57
# File 'lib/algolia/personalization_client.rb', line 55

def get_personalization_strategy(opts = {})
  @transporter.read(:GET, '1/strategies/personalization', {}, opts)
end

#set_personalization_strategy(personalization_strategy, opts = {}) ⇒ Hash

Set the personalization strategy.

Parameters:

  • personalization_strategy (Hash)

    A strategy object.

Returns:

  • (Hash)


47
48
49
# File 'lib/algolia/personalization_client.rb', line 47

def set_personalization_strategy(personalization_strategy, opts = {})
  @transporter.write(:POST, '1/strategies/personalization', personalization_strategy, opts)
end