class KOSapiClient::RequestBuilder

Attributes

id[R]
response[R]
url_builder[R]

Public Class Methods

new(resource_name, http_client, url_builder = URLBuilder.new(resource_name.to_s)) click to toggle source
# File lib/kosapi_client/request_builder.rb, line 55
def initialize(resource_name, http_client, url_builder = URLBuilder.new(resource_name.to_s))
  @base_url = resource_name
  @http_client = http_client
  @operation = :get
  @body = nil
  @headers = { Accept: 'application/atom+xml' }
  @url_builder = url_builder
  @id = nil
end

Public Instance Methods

finalize() click to toggle source
# File lib/kosapi_client/request_builder.rb, line 65
def finalize
  options = {headers: @headers, body: @body }
  @response = @http_client.send_request(@operation, @url_builder.url, options)
end
find(id) click to toggle source
# File lib/kosapi_client/request_builder.rb, line 6
def find(id)
  @id = id
  @url_builder.set_path(id)
  self
end
limit(num) click to toggle source
# File lib/kosapi_client/request_builder.rb, line 17
def limit(num)
  @url_builder.set_query_param(:limit, num)
  self
end
offset(num) click to toggle source
# File lib/kosapi_client/request_builder.rb, line 12
def offset(num)
  @url_builder.set_query_param(:offset, num)
  self
end
order(*args, **kwargs)
Alias for: order_by
order_by(*args, **kwargs) click to toggle source

Specify order of the results.

Examples:

.order_by(:firstName, :lastName)
.order_by(:firstName, lastName: :desc)
.order_by(firstName: :asc, lastName: desc)
# File lib/kosapi_client/request_builder.rb, line 41
def order_by(*args, **kwargs)
  ordering = args + kwargs.map do |attr, dir|
    if dir != :asc && dir != :desc
      raise ArgumentError, "Direction must be :asc, or :desc, but got #{dir.inspect}"
    end
    "#{attr}@#{dir}"
  end

  @url_builder.set_query_param(:orderBy, ordering.join(','))
  self
end
Also aliased as: order
query(params = {}) click to toggle source
# File lib/kosapi_client/request_builder.rb, line 22
def query(params = {})
  raise 'Empty parameters to query are not allowed' if params.empty?
  if params.instance_of?(String)
    rsql = params
  else
    rsql = params.map { |k, v| "#{k}==#{v}" }.join(';')
  end
  @url_builder.set_query_param(:query, rsql)
  self
end
Also aliased as: where
where(params = {})
Alias for: query

Private Instance Methods

id_set?() click to toggle source
# File lib/kosapi_client/request_builder.rb, line 73
def id_set?
  @id
end