class Itunes::Receipt::Response
Attributes
data[R]
request[R]
response[R]
Public Class Methods
new(response: nil, request: nil)
click to toggle source
# File lib/itunes/receipt/response.rb, line 63 def initialize response: nil, request: nil @response = response @request = request @data = JSON.parse(response.body) end
Public Instance Methods
latest_receipt()
click to toggle source
# File lib/itunes/receipt/response.rb, line 6 def latest_receipt info = data['latest_receipt_info'] || data['latest_expired_receipt_info'] @latest_receipt ||= case info when Array base_receipt = data['receipt'].dup base_receipt.delete('in_app') receipt = info.sort_by { |x| x['expires_date'] }.last Itunes::Receipt::V2.new(data: base_receipt.merge(receipt)) when Hash Itunes::Receipt::V1.new(data: info) end end
receipt()
click to toggle source
# File lib/itunes/receipt/response.rb, line 21 def receipt if receipt = data['receipt'] @receipt ||= if data['receipt']['in_app'] base_receipt = data['receipt'].dup base_receipt.delete('in_app') Itunes::Receipt::V2.new(data: base_receipt) else Itunes::Receipt::V1.new(data: receipt) end end end
receipts()
click to toggle source
# File lib/itunes/receipt/response.rb, line 34 def receipts @receipts ||= if receipts = data['receipt']['in_app'] base_receipt = data['receipt'].dup base_receipt.delete('in_app') receipts.sort_by { |x| x['expires_date'] }.map { |r| Itunes::Receipt::V2.new(data: base_receipt.merge(r)) } else [ receipt, latest_receipt ] end end
status()
click to toggle source
# File lib/itunes/receipt/response.rb, line 45 def status @status ||= data['status'] end
valid?()
click to toggle source
# File lib/itunes/receipt/response.rb, line 49 def valid? status == 0 end
validate!()
click to toggle source
# File lib/itunes/receipt/response.rb, line 53 def validate! if not valid? raise(Itunes::Receipt::Error.new(status)) end true end