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