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.



40937
40938
40939
40940
40941
40942
40943
40944
40945
40946
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40937

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.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



40935
40936
40937
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40935

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



40952
40953
40954
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40952

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

#to_hashObject



40956
40957
40958
40959
40960
40961
40962
40963
40964
40965
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40956

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



40948
40949
40950
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40948

def to_json
  JSON.dump(to_hash)
end