Class: Io::Flow::V0::Models::CheckoutToken

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

Represents a secure token that can be used to redirect to Checkout UI

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incoming = {}) ⇒ CheckoutToken

Returns a new instance of CheckoutToken.



26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26456

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:id, :organization, :checkout, :order, :urls, :expires_at, :session], 'CheckoutToken')
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
  @organization = (x = opts.delete(:organization); x.is_a?(::Io::Flow::V0::Models::OrganizationReference) ? x : ::Io::Flow::V0::Models::OrganizationReference.new(x))
  @checkout = (x = opts.delete(:checkout); x.is_a?(::Io::Flow::V0::Models::CheckoutReference) ? x : ::Io::Flow::V0::Models::CheckoutReference.new(x))
  @order = (x = opts.delete(:order); x.is_a?(::Io::Flow::V0::Models::OrderNumberReference) ? x : ::Io::Flow::V0::Models::OrderNumberReference.new(x))
  @urls = (x = opts.delete(:urls); x.is_a?(::Io::Flow::V0::Models::CheckoutUrls) ? x : ::Io::Flow::V0::Models::CheckoutUrls.new(x))
  @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime)
  @session = (x = opts.delete(:session); x.is_a?(::Io::Flow::V0::Models::SessionReference) ? x : ::Io::Flow::V0::Models::SessionReference.new(x))
  @customer = (x = opts.delete(:customer); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::CustomerReference) ? x : ::Io::Flow::V0::Models::CustomerReference.new(x)))
end

Instance Attribute Details

#checkoutObject (readonly)

Returns the value of attribute checkout.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def checkout
  @checkout
end

#customerObject (readonly)

Returns the value of attribute customer.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def customer
  @customer
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def expires_at
  @expires_at
end

#idObject (readonly)

Returns the value of attribute id.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def id
  @id
end

#orderObject (readonly)

Returns the value of attribute order.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def order
  @order
end

#organizationObject (readonly)

Returns the value of attribute organization.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def organization
  @organization
end

#sessionObject (readonly)

Returns the value of attribute session.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def session
  @session
end

#urlsObject (readonly)

Returns the value of attribute urls.



26454
26455
26456
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26454

def urls
  @urls
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



26473
26474
26475
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26473

def copy(incoming={})
  CheckoutToken.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
end

#to_hashObject



26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26477

def to_hash
  {
    :id => id,
    :organization => organization.to_hash,
    :checkout => checkout.to_hash,
    :order => order.to_hash,
    :urls => urls.to_hash,
    :expires_at => expires_at,
    :session => session.to_hash,
    :customer => customer.nil? ? nil : customer.to_hash
  }
end

#to_jsonObject



26469
26470
26471
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 26469

def to_json
  JSON.dump(to_hash)
end