class Pipekit::Result

Attributes

resource[R]
response_data[R]

Public Class Methods

new(resource, response_data) click to toggle source
# File lib/pipekit/result.rb, line 5
def initialize(resource, response_data)
  @response_data = response_data
  @resource = resource
  raise UnsuccessfulRequestError.new(response_data) unless success?
end
response(resource, response_data) click to toggle source
# File lib/pipekit/result.rb, line 29
def self.response(resource, response_data)
  new(resource, response_data).response
end

Public Instance Methods

+(other) click to toggle source
# File lib/pipekit/result.rb, line 17
def +(other)
  self.class.new(resource, other.merged_response(response_body))
end
fetch_next_request?() click to toggle source
# File lib/pipekit/result.rb, line 21
def fetch_next_request?
  Config.fetch(:request_all_pages, true) && pagination_data["more_items_in_collection"]
end
next_start() click to toggle source
# File lib/pipekit/result.rb, line 25
def next_start
  pagination_data["next_start"]
end
response() click to toggle source
# File lib/pipekit/result.rb, line 11
def response
  raise ResourceNotFoundError.new(response_data) unless resource_found?
  return Response.new(resource, response_body) unless response_body.is_a? Array
  response_body.map { |data| Response.new(resource, data) }
end

Protected Instance Methods

merged_response(other_body) click to toggle source
# File lib/pipekit/result.rb, line 35
def merged_response(other_body)
  response_data.tap do |response|
    response["data"] = other_body + response_body
  end
end

Private Instance Methods

pagination_data() click to toggle source
# File lib/pipekit/result.rb, line 45
def pagination_data
  response_data
    .fetch("additional_data", {})
    .fetch("pagination", {})
end
resource_found?() click to toggle source
# File lib/pipekit/result.rb, line 59
def resource_found?
  !(response_body.nil? || response_body.empty?)
end
response_body() click to toggle source
# File lib/pipekit/result.rb, line 51
def response_body
  response_data["data"]
end
success?() click to toggle source
# File lib/pipekit/result.rb, line 55
def success?
  response_data["success"]
end