Class: RecombeeApiClient::CreatePropertyBasedSegmentation

Inherits:
ApiRequest
  • Object
show all
Defined in:
lib/recombee_api_client/api/create_property_based_segmentation.rb

Overview

Creates a Segmentation that splits the items into segments based on values of a particular item property.

A segment is created for each unique value of the property. In case of set properties, a segment is created for each value in the set. Item belongs to all these segments.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HashNormalizer

#camelize, #normalize_hash_to_camel_case

Constructor Details

#initialize(segmentation_id, source_type, property_name, optional = {}) ⇒ CreatePropertyBasedSegmentation

  • *Required arguments*

    • segmentation_id -> ID of the newly created Segmentation

    • source_type -> What type of data should be segmented. Currently only items are supported.

    • property_name -> Name of the property on which the Segmentation should be based

  • *Optional arguments (given as hash optional)*

    • title -> Human-readable name that is shown in the Recombee Admin UI.

    • description -> Description that is shown in the Recombee Admin UI.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 33

def initialize(segmentation_id, source_type, property_name, optional = {})
  @segmentation_id = segmentation_id
  @source_type = source_type
  @property_name = property_name
  optional = normalize_hash_to_camel_case(optional)
  @title = optional['title']
  @description = optional['description']
  @optional = optional
  @timeout = 10_000
  @ensure_https = false
  @optional.each do |par, _|
    raise UnknownOptionalParameter.new(par) unless %w[title description].include? par
  end
end

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



16
17
18
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 16

def description
  @description
end

#ensure_httpsObject

Returns the value of attribute ensure_https.



17
18
19
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 17

def ensure_https
  @ensure_https
end

#property_nameObject (readonly)

Returns the value of attribute property_name.



16
17
18
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 16

def property_name
  @property_name
end

#segmentation_idObject (readonly)

Returns the value of attribute segmentation_id.



16
17
18
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 16

def segmentation_id
  @segmentation_id
end

#source_typeObject (readonly)

Returns the value of attribute source_type.



16
17
18
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 16

def source_type
  @source_type
end

#timeoutObject

Returns the value of attribute timeout.



17
18
19
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 17

def timeout
  @timeout
end

#titleObject (readonly)

Returns the value of attribute title.



16
17
18
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 16

def title
  @title
end

Instance Method Details

#body_parametersObject

Values of body parameters as a Hash



54
55
56
57
58
59
60
61
62
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 54

def body_parameters
  p = {}
  p['sourceType'] = @source_type
  p['propertyName'] = @property_name
  p['title'] = @optional['title'] if @optional.include? 'title'
  p['description'] = @optional['description'] if @optional.include? 'description'

  p
end

#methodObject

HTTP method



49
50
51
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 49

def method
  :put
end

#pathObject

Relative path to the endpoint



71
72
73
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 71

def path
  "/{databaseId}/segmentations/property-based/#{@segmentation_id}"
end

#query_parametersObject

Values of query parameters as a Hash. name of parameter => value of the parameter



66
67
68
# File 'lib/recombee_api_client/api/create_property_based_segmentation.rb', line 66

def query_parameters
  {}
end