Class: Io::Flow::V0::Models::OrderCustomer

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

Overview

A customer represents the actual person purchasing from you. This information is needed primarily to support logistics (delivery to this person), fraud management (verification of who the person is), and reporting. We also recommend including your customer number whenever possible as doing so will allow Flow to link up transactions for this customer making customer service easier.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incoming = {}) ⇒ OrderCustomer

Returns a new instance of OrderCustomer.



38606
38607
38608
38609
38610
38611
38612
38613
38614
38615
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38606

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:name], 'OrderCustomer')
  @name = (x = opts.delete(:name); x.is_a?(::Io::Flow::V0::Models::Name) ? x : ::Io::Flow::V0::Models::Name.new(x))
  @number = (x = opts.delete(:number); x.nil? ? nil : HttpClient::Preconditions.assert_class('number', x, String))
  @phone = (x = opts.delete(:phone); x.nil? ? nil : HttpClient::Preconditions.assert_class('phone', x, String))
  @email = (x = opts.delete(:email); x.nil? ? nil : HttpClient::Preconditions.assert_class('email', x, String))
  @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
  @invoice = (x = opts.delete(:invoice); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::CustomerInvoice) ? x : ::Io::Flow::V0::Models::CustomerInvoice.new(x)))
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



38604
38605
38606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38604

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



38621
38622
38623
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38621

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

#to_hashObject



38625
38626
38627
38628
38629
38630
38631
38632
38633
38634
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38625

def to_hash
  {
    :name => name.to_hash,
    :number => number,
    :phone => phone,
    :email => email,
    :address => address.nil? ? nil : address.to_hash,
    :invoice => invoice.nil? ? nil : invoice.to_hash
  }
end

#to_jsonObject



38617
38618
38619
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 38617

def to_json
  JSON.dump(to_hash)
end