class GuestyAPI::ResourceBase

Public Class Methods

new(client) click to toggle source
# File lib/guesty_api/resource_base.rb, line 5
def initialize(client)
  @client = client
end

Private Instance Methods

check_response!(response) click to toggle source
# File lib/guesty_api/resource_base.rb, line 15
def check_response!(response)
  parsed = response.parsed_response
  msg = parsed.is_a?(Hash) ? parsed['message'] || parsed.dig('error', 'message') : parsed

  throw!(msg: msg, code: response.code) unless response.success?
end
collection_entity(response) click to toggle source
# File lib/guesty_api/resource_base.rb, line 26
def collection_entity(response)
  response.parsed_response['results'].map { |payload| entity_class.new payload }
end
entity_class() click to toggle source
# File lib/guesty_api/resource_base.rb, line 11
def entity_class
  raise StandardError, '`:entity_class method` should be overriden in a subclass'
end
single_entity(response) click to toggle source
# File lib/guesty_api/resource_base.rb, line 22
def single_entity(response)
  entity_class.new response.parsed_response
end
throw!(msg:, code:) click to toggle source
# File lib/guesty_api/resource_base.rb, line 30
def throw!(msg:, code:)
  raise APIError.new(msg, code)
end