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.



39825
39826
39827
39828
39829
39830
39831
39832
39833
39834
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39825

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.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



39823
39824
39825
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39823

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



39840
39841
39842
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39840

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

#to_hashObject



39844
39845
39846
39847
39848
39849
39850
39851
39852
39853
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39844

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



39836
39837
39838
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39836

def to_json
  JSON.dump(to_hash)
end