class Etsy::Response
Response
¶ ↑
Basic wrapper around the Etsy
JSON response data
Public Class Methods
new(raw_response)
click to toggle source
Create a new response based on the raw HTTP response
# File lib/etsy/response.rb, line 25 def initialize(raw_response) @raw_response = raw_response end
Public Instance Methods
body()
click to toggle source
# File lib/etsy/response.rb, line 35 def body @raw_response.body end
code()
click to toggle source
# File lib/etsy/response.rb, line 39 def code @raw_response.code end
count()
click to toggle source
Number of records in the response results
# File lib/etsy/response.rb, line 44 def count if paginated? to_hash['results'].nil? ? 0 : to_hash['results'].size else to_hash['count'] end end
paginated?()
click to toggle source
# File lib/etsy/response.rb, line 71 def paginated? !!to_hash['pagination'] end
result()
click to toggle source
Results of the API request
# File lib/etsy/response.rb, line 53 def result if success? results = to_hash['results'] || [] count == 1 ? results.first : results else Etsy.silent_errors ? [] : validate! end end
success?()
click to toggle source
# File lib/etsy/response.rb, line 67 def success? !!(code =~ /2\d\d/) end
to_hash()
click to toggle source
Convert the raw JSON data to a hash
# File lib/etsy/response.rb, line 30 def to_hash validate! @hash ||= json end
total()
click to toggle source
Total number of results of the request
# File lib/etsy/response.rb, line 63 def total @total ||= to_hash['count'] end
Private Instance Methods
data()
click to toggle source
# File lib/etsy/response.rb, line 77 def data @raw_response.body end
exceeded_rate_limit?()
click to toggle source
# File lib/etsy/response.rb, line 123 def exceeded_rate_limit? data =~ /You have exceeded/ end
invalid_user_id?()
click to toggle source
# File lib/etsy/response.rb, line 111 def invalid_user_id? data =~ /is not a valid user_id/ end
json()
click to toggle source
# File lib/etsy/response.rb, line 81 def json @hash ||= JSON.parse(data) end
missing_shop_id?()
click to toggle source
# File lib/etsy/response.rb, line 107 def missing_shop_id? data =~ /Shop with PK shop_id/ end
temporary_etsy_issue?()
click to toggle source
# File lib/etsy/response.rb, line 115 def temporary_etsy_issue? data =~ /Temporary Etsy issue/ end
token_revoked?()
click to toggle source
# File lib/etsy/response.rb, line 103 def token_revoked? data == "oauth_problem=token_revoked" end
valid_json?()
click to toggle source
# File lib/etsy/response.rb, line 96 def valid_json? json return true rescue JSON::ParserError return false end
validate!()
click to toggle source
# File lib/etsy/response.rb, line 85 def validate! raise OAuthTokenRevoked if token_revoked? raise MissingShopID if missing_shop_id? raise InvalidUserID if invalid_user_id? raise TemporaryIssue if temporary_etsy_issue? raise ResourceUnavailable if resource_unavailable? raise ExceededRateLimit if exceeded_rate_limit? raise EtsyJSONInvalid.new({:code => code, :data => data}) unless valid_json? true end