Sha256: 74ffd02cbbc8ec3a18dc018ffe363c92431c9b90d6e2808b69ae40261356fcf5

Contents?: true

Size: 1.99 KB

Versions: 7

Compression:

Stored size: 1.99 KB

Contents

module Algolia
  module Personalization
    class Client
      # Initializes the Personalization client
      #
      # @param personalization_config [Personalization::Config] a Personalization::Config object which contains your APP_ID and API_KEY
      # @option adapter [Object] adapter object used for the connection
      # @option logger [Object]
      # @option http_requester [Object] http_requester object used for the connection
      #
      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

      # Create a new client providing only app ID and API key
      #
      # @param app_id [String] Algolia application ID
      # @param api_key [String] Algolia API key
      #
      # @return self
      #
      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 a new client providing only an Personalization::Config object
      #
      # @param config [Personalization::Config]
      #
      # @return self
      #
      def self.create_with_config(config)
        new(config)
      end

      # Set the personalization strategy.
      #
      # @param personalization_strategy [Hash] A strategy object.
      #
      # @return [Hash]
      #
      def set_personalization_strategy(personalization_strategy, opts = {})
        @transporter.write(:POST, '1/strategies/personalization', personalization_strategy, opts)
      end

      # Get the personalization strategy.
      #
      # @return [Hash]
      #
      def get_personalization_strategy(opts = {})
        @transporter.read(:GET, '1/strategies/personalization', {}, opts)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
algolia-2.3.4 lib/algolia/personalization_client.rb
algolia-2.3.3 lib/algolia/personalization_client.rb
algolia-2.3.2 lib/algolia/personalization_client.rb
algolia-2.3.1 lib/algolia/personalization_client.rb
algolia-2.3.0 lib/algolia/personalization_client.rb
algolia-2.2.5 lib/algolia/personalization_client.rb
algolia-2.2.4 lib/algolia/personalization_client.rb