class Algolia::Insights::ConvertedObjectIDsAfterSearch

Use this event to track when users convert after a previous Algolia request. For example, a user clicks on an item in the search results to view the product detail page. Then, the user adds the item to their shopping cart. If you’re building your category pages with Algolia, you’ll also use this event.

def self._deserialize(type, value)

Returns:
  • (Object) - Deserialized data

Parameters:
  • string () -- value Value to be deserialized
  • string () -- type Data type
def self._deserialize(type, value)
  case type.to_sym
  when :Time
    Time.parse(value)
  when :Date
    Date.parse(value)
  when :String
    value.to_s
  when :Integer
    value.to_i
  when :Float
    value.to_f
  when :Boolean
    if value.to_s =~ /\A(true|t|yes|y|1)\z/i
      true
    else
      false
    end
  when :Object
    # generic object (usually a Hash), return directly
    value
  when /\AArray<(?<inner_type>.+)>\z/
    inner_type = Regexp.last_match[:inner_type]
    value.map { |v| _deserialize(inner_type, v) }
  when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
    k_type = Regexp.last_match[:k_type]
    v_type = Regexp.last_match[:v_type]
    {}.tap do |hash|
      value.each do |k, v|
        hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
      end
    end
  else # model
    # models (e.g. Pet) or oneOf
    klass = Algolia::Insights.const_get(type)
    klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
  end
end

def self.acceptable_attributes

Returns all the JSON keys this model knows about
def self.acceptable_attributes
  attribute_map.values
end

def self.attribute_map

Attribute mapping from ruby-style variable name to JSON key.
def self.attribute_map
  {
    :event_name => :eventName,
    :event_type => :eventType,
    :index => :index,
    :object_ids => :objectIDs,
    :query_id => :queryID,
    :user_token => :userToken,
    :authenticated_user_token => :authenticatedUserToken,
    :timestamp => :timestamp
  }
end

def self.build_from_hash(attributes)

Returns:
  • (Object) - Returns the model itself

Parameters:
  • attributes (Hash) -- Model attributes in the form of hash
def self.build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  attributes = attributes.transform_keys(&:to_sym)
  transformed_hash = {}
  types_mapping.each_pair do |key, type|
    if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
      transformed_hash[key.to_sym] = nil
    elsif type =~ /\AArray<(.*)>/i
      # check to ensure the input is an array given that the attribute
      # is documented as an array but the input is not
      if attributes[attribute_map[key]].is_a?(Array)
        transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v| _deserialize(::Regexp.last_match(1), v) }
      end
    elsif !attributes[attribute_map[key]].nil?
      transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
    end
  end
  new(transformed_hash)
end

def self.openapi_nullable

List of attributes with nullable: true
def self.openapi_nullable
  Set.new([])
end

def self.types_mapping

Attribute type mapping.
def self.types_mapping
  {
    :event_name => :String,
    :event_type => :ConversionEvent,
    :index => :String,
    :object_ids => :'Array<String>',
    :query_id => :String,
    :user_token => :String,
    :authenticated_user_token => :String,
    :timestamp => :Integer
  }
end

def ==(other)

Parameters:
  • Object (Object) -- to be compared
def ==(other)
  return true if equal?(other)
  self.class == other.class &&
    event_name == other.event_name &&
    event_type == other.event_type &&
    index == other.index &&
    object_ids == other.object_ids &&
    query_id == other.query_id &&
    user_token == other.user_token &&
    authenticated_user_token == other.authenticated_user_token &&
    timestamp == other.timestamp
end

def _to_hash(value)

Returns:
  • (Hash) - Returns the value in the form of hash

Parameters:
  • value (Object) -- Any valid value
def _to_hash(value)
  if value.is_a?(Array)
    value.compact.map { |v| _to_hash(v) }
  elsif value.is_a?(Hash)
    {}.tap do |hash|
      value.each { |k, v| hash[k] = _to_hash(v) }
    end
  elsif value.respond_to? :to_hash
    value.to_hash
  else
    value
  end
end

def authenticated_user_token=(authenticated_user_token)

Parameters:
  • authenticated_user_token (Object) -- Value to be assigned
def authenticated_user_token=(authenticated_user_token)
  if authenticated_user_token.nil?
    raise ArgumentError, 'authenticated_user_token cannot be nil'
  end
  if authenticated_user_token.to_s.length > 129
    raise ArgumentError, 'invalid value for "authenticated_user_token", the character length must be smaller than or equal to 129.'
  end
  if authenticated_user_token.to_s.length < 1
    raise ArgumentError, 'invalid value for "authenticated_user_token", the character length must be great than or equal to 1.'
  end
  pattern = %r{[a-zA-Z0-9_=/+-]{1,129}}
  if authenticated_user_token !~ pattern
    raise ArgumentError, "invalid value for \"authenticated_user_token\", must conform to the pattern #{pattern}."
  end
  @authenticated_user_token = authenticated_user_token
end

def eql?(other)

Parameters:
  • Object (Object) -- to be compared

Other tags:
    See: the - `==` method
def eql?(other)
  self == other
end

def event_name=(event_name)

Parameters:
  • event_name (Object) -- Value to be assigned
def event_name=(event_name)
  if event_name.nil?
    raise ArgumentError, 'event_name cannot be nil'
  end
  if event_name.to_s.length > 64
    raise ArgumentError, 'invalid value for "event_name", the character length must be smaller than or equal to 64.'
  end
  if event_name.to_s.length < 1
    raise ArgumentError, 'invalid value for "event_name", the character length must be great than or equal to 1.'
  end
  pattern = /[\x20-\x7E]{1,64}/
  if event_name !~ pattern
    raise ArgumentError, "invalid value for \"event_name\", must conform to the pattern #{pattern}."
  end
  @event_name = event_name
end

def hash

Returns:
  • (Integer) - Hash code
def hash
  [event_name, event_type, index, object_ids, query_id, user_token, authenticated_user_token, timestamp].hash
end

def initialize(attributes = {})

Parameters:
  • attributes (Hash) -- Model attributes in the form of hash
def initialize(attributes = {})
  unless attributes.is_a?(Hash)
    raise ArgumentError, "The input argument (attributes) must be a hash in `Algolia::ConvertedObjectIDsAfterSearch` initialize method"
  end
  # check to see if the attribute exists and convert string to symbol for hash key
  attributes = attributes.each_with_object({}) do |(k, v), h|
    unless self.class.attribute_map.key?(k.to_sym)
      raise ArgumentError,
            "`#{k}` is not a valid attribute in `Algolia::ConvertedObjectIDsAfterSearch`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
    end
    h[k.to_sym] = v
  end
  if attributes.key?(:event_name)
    self.event_name = attributes[:event_name]
  else
    self.event_name = nil
  end
  if attributes.key?(:event_type)
    self.event_type = attributes[:event_type]
  else
    self.event_type = nil
  end
  if attributes.key?(:index)
    self.index = attributes[:index]
  else
    self.index = nil
  end
  if attributes.key?(:object_ids)
    if (value = attributes[:object_ids]).is_a?(Array)
      self.object_ids = value
    end
  else
    self.object_ids = nil
  end
  if attributes.key?(:query_id)
    self.query_id = attributes[:query_id]
  else
    self.query_id = nil
  end
  if attributes.key?(:user_token)
    self.user_token = attributes[:user_token]
  else
    self.user_token = nil
  end
  if attributes.key?(:authenticated_user_token)
    self.authenticated_user_token = attributes[:authenticated_user_token]
  end
  if attributes.key?(:timestamp)
    self.timestamp = attributes[:timestamp]
  end
end

def object_ids=(object_ids)

Parameters:
  • object_ids (Object) -- Value to be assigned
def object_ids=(object_ids)
  if object_ids.nil?
    raise ArgumentError, 'object_ids cannot be nil'
  end
  if object_ids.length > 20
    raise ArgumentError, 'invalid value for "object_ids", number of items must be less than or equal to 20.'
  end
  if object_ids.length < 1
    raise ArgumentError, 'invalid value for "object_ids", number of items must be greater than or equal to 1.'
  end
  @object_ids = object_ids
end

def query_id=(query_id)

Parameters:
  • query_id (Object) -- Value to be assigned
def query_id=(query_id)
  if query_id.nil?
    raise ArgumentError, 'query_id cannot be nil'
  end
  if query_id.to_s.length > 32
    raise ArgumentError, 'invalid value for "query_id", the character length must be smaller than or equal to 32.'
  end
  if query_id.to_s.length < 32
    raise ArgumentError, 'invalid value for "query_id", the character length must be great than or equal to 32.'
  end
  pattern = /[0-9a-f]{32}/
  if query_id !~ pattern
    raise ArgumentError, "invalid value for \"query_id\", must conform to the pattern #{pattern}."
  end
  @query_id = query_id
end

def to_body

Returns:
  • (Hash) - Returns the object in the form of hash
def to_body
  to_hash
end

def to_hash

Returns:
  • (Hash) - Returns the object in the form of hash
def to_hash
  hash = {}
  self.class.attribute_map.each_pair do |attr, param|
    value = send(attr)
    if value.nil?
      is_nullable = self.class.openapi_nullable.include?(attr)
      next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
    end
    hash[param] = _to_hash(value)
  end
  hash
end

def to_json(*_args)

def to_json(*_args)
  to_hash.to_json
end

def to_s

Returns:
  • (String) - String presentation of the object
def to_s
  to_hash.to_s
end

def user_token=(user_token)

Parameters:
  • user_token (Object) -- Value to be assigned
def user_token=(user_token)
  if user_token.nil?
    raise ArgumentError, 'user_token cannot be nil'
  end
  if user_token.to_s.length > 129
    raise ArgumentError, 'invalid value for "user_token", the character length must be smaller than or equal to 129.'
  end
  if user_token.to_s.length < 1
    raise ArgumentError, 'invalid value for "user_token", the character length must be great than or equal to 1.'
  end
  pattern = %r{[a-zA-Z0-9_=/+-]{1,129}}
  if user_token !~ pattern
    raise ArgumentError, "invalid value for \"user_token\", must conform to the pattern #{pattern}."
  end
  @user_token = user_token
end