Class: RecombeeApiClient::SetViewPortion

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

Overview

Sets viewed portion of an item (for example a video or article) by a user (at a session). If you send a new request with the same (userId, itemId, sessionId), the portion gets updated.

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HashNormalizer

#camelize, #normalize_hash_to_camel_case

Constructor Details

#initialize(user_id, item_id, portion, optional = {}) ⇒ SetViewPortion

  • *Required arguments*

    • user_id -> User who viewed a portion of the item

    • item_id -> Viewed item

    • portion -> Viewed portion of the item (number between 0.0 (viewed nothing) and 1.0 (viewed full item) ). It should be the actual viewed part of the item, no matter the seeking. For example, if the user seeked immediately to half of the item and then viewed 10% of the item, the portion should still be 0.1.

  • *Optional arguments (given as hash optional)*

    • sessionId -> ID of the session in which the user viewed the item. Default is null (None, nil, NULL etc., depending on the language).

    • timestamp -> UTC timestamp of the view portion as ISO8601-1 pattern or UTC epoch time. The default value is the current time.

    • cascadeCreate -> Sets whether the given user/item should be created if not present in the database.

    • recommId -> If this view portion is based on a recommendation request, recommId is the id of the clicked recommendation.

    • additionalData -> A dictionary of additional data for the interaction.

    • autoPresented -> Indicates whether the item was automatically presented to the user (e.g., in a swiping feed) or explicitly requested by the user (e.g., by clicking on a link). Defaults to false.

    • timeSpent -> The duration (in seconds) that the user viewed the item. In update requests, this value may only increase and is required only if it has changed.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 33

def initialize(user_id, item_id, portion, optional = {})
  @user_id = user_id
  @item_id = item_id
  @portion = portion
  optional = normalize_hash_to_camel_case(optional)
  @session_id = optional['sessionId']
  @timestamp = optional['timestamp']
  @cascade_create = optional['cascadeCreate']
  @recomm_id = optional['recommId']
  @additional_data = optional['additionalData']
  @auto_presented = optional['autoPresented']
  @time_spent = optional['timeSpent']
  @optional = optional
  @timeout = 3000
  @ensure_https = false
  @optional.each do |par, _|
    raise UnknownOptionalParameter.new(par) unless %w[sessionId timestamp cascadeCreate recommId
                                                      additionalData autoPresented timeSpent].include? par
  end
end

Instance Attribute Details

#additional_dataObject (readonly)

Returns the value of attribute additional_data.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def additional_data
  @additional_data
end

#auto_presentedObject (readonly)

Returns the value of attribute auto_presented.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def auto_presented
  @auto_presented
end

#cascade_createObject (readonly)

Returns the value of attribute cascade_create.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def cascade_create
  @cascade_create
end

#ensure_httpsObject

Returns the value of attribute ensure_https.



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

def ensure_https
  @ensure_https
end

#item_idObject (readonly)

Returns the value of attribute item_id.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def item_id
  @item_id
end

#portionObject (readonly)

Returns the value of attribute portion.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def portion
  @portion
end

#recomm_idObject (readonly)

Returns the value of attribute recomm_id.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def recomm_id
  @recomm_id
end

#session_idObject (readonly)

Returns the value of attribute session_id.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def session_id
  @session_id
end

#time_spentObject (readonly)

Returns the value of attribute time_spent.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def time_spent
  @time_spent
end

#timeoutObject

Returns the value of attribute timeout.



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

def timeout
  @timeout
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def timestamp
  @timestamp
end

#user_idObject (readonly)

Returns the value of attribute user_id.



14
15
16
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 14

def user_id
  @user_id
end

Instance Method Details

#body_parametersObject

Values of body parameters as a Hash



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 60

def body_parameters
  p = {}
  p['userId'] = @user_id
  p['itemId'] = @item_id
  p['portion'] = @portion
  p['sessionId'] = @optional['sessionId'] if @optional.include? 'sessionId'
  p['timestamp'] = @optional['timestamp'] if @optional.include? 'timestamp'
  p['cascadeCreate'] = @optional['cascadeCreate'] if @optional.include? 'cascadeCreate'
  p['recommId'] = @optional['recommId'] if @optional.include? 'recommId'
  p['additionalData'] = @optional['additionalData'] if @optional.include? 'additionalData'
  p['autoPresented'] = @optional['autoPresented'] if @optional.include? 'autoPresented'
  p['timeSpent'] = @optional['timeSpent'] if @optional.include? 'timeSpent'

  p
end

#methodObject

HTTP method



55
56
57
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 55

def method
  :post
end

#pathObject

Relative path to the endpoint



83
84
85
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 83

def path
  '/{databaseId}/viewportions/'
end

#query_parametersObject

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



78
79
80
# File 'lib/recombee_api_client/api/set_view_portion.rb', line 78

def query_parameters
  {}
end