class RecombeeApiClient::Batch

Batch processing allows you to submit arbitrary sequence of requests

Attributes

body_parameters[R]

Values of body parameters as a Hash

ensure_https[RW]
requests[R]
timeout[RW]

Public Class Methods

new(requests, optional = {}) click to toggle source
  • *Required arguments*

    • requests -> Array of API requests.

# File lib/recombee_api_client/api/batch.rb, line 17
def initialize(requests, optional = {})
  @requests = requests
  optional = normalize_optional(optional)
  @optional = optional
  @body_parameters = requests_to_batch_hash
  @timeout = requests.map{|r| r.timeout}.reduce(:+)
  @ensure_https = true

  @optional.each do |par, _|
    fail UnknownOptionalParameter.new(par) unless ["distinctRecomms"].include? par
  end
end

Public Instance Methods

method() click to toggle source

HTTP method

# File lib/recombee_api_client/api/batch.rb, line 31
def method
  :post
end
path() click to toggle source

Relative path to the endpoint

# File lib/recombee_api_client/api/batch.rb, line 46
def path
  p = '/{databaseId}/batch/'
  p
end
query_parameters() click to toggle source

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

# File lib/recombee_api_client/api/batch.rb, line 40
def query_parameters
  params = {}
  params
end

Private Instance Methods

request_to_batch_hash(req) click to toggle source
# File lib/recombee_api_client/api/batch.rb, line 61
def request_to_batch_hash(req)
  path = req.path
  path.slice! ('/{databaseId}')
  bh = {
    'method' => req.method.to_s.upcase,
    'path' => path
  }
  params = req.query_parameters

  if req.body_parameters
    params = params.merge(req.body_parameters)
  end
  
  bh['params'] = params if params.size > 0
  bh
end
requests_to_batch_hash() click to toggle source
# File lib/recombee_api_client/api/batch.rb, line 53
def requests_to_batch_hash
  reqs = []
  @requests.each { |r| reqs.push(request_to_batch_hash r) }
  result = {'requests' => reqs}
  result['distinctRecomms'] = @optional['distinctRecomms'] if @optional.key? 'distinctRecomms'
  result
end