class Amazon::Iap2::Result
Constants
- VALID_ATTRIBUTES
Attributes
beta_product[RW]
cancel_date[RW]
cancel_time[RW]
parent_product_id[RW]
product_id[RW]
product_type[RW]
purchase_date[RW]
purchase_time[RW]
quantity[RW]
receipt_id[RW]
renewal_date[RW]
term[RW]
term_sku[RW]
test_transaction[RW]
Public Class Methods
new(response)
click to toggle source
# File lib/amazon/iap2/result.rb, line 31 def initialize(response) case response.code.to_i when 200 parsed = JSON.load(response.body) raise Amazon::Iap2::Exceptions::EmptyResponse unless parsed if parsed.has_key? 'purchaseDate' parsed['purchaseTime'] = parsed['purchaseDate'].nil? ? nil : Time.at(parsed['purchaseDate'] / 1000) end if parsed.has_key? 'cancelDate' parsed['cancelTime'] = parsed['cancelDate'].nil? ? nil : Time.at(parsed['cancelDate'] / 1000) end parsed.each do |key, value| underscore = key.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2').gsub(/([a-z\d])([A-Z])/, '\1_\2').tr('-', '_').downcase send "#{underscore}=", value if VALID_ATTRIBUTES.include?(underscore.to_s.downcase) end when 400 then raise Amazon::Iap2::Exceptions::InvalidTransaction when 496 then raise Amazon::Iap2::Exceptions::InvalidSharedSecret when 497 then raise Amazon::Iap2::Exceptions::InvalidUserId when 500 then raise Amazon::Iap2::Exceptions::InternalError else raise Amazon::Iap2::Exceptions::General end end