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.



39919
39920
39921
39922
39923
39924
39925
39926
39927
39928
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39919

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.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



39917
39918
39919
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39917

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



39934
39935
39936
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39934

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

#to_hashObject



39938
39939
39940
39941
39942
39943
39944
39945
39946
39947
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39938

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



39930
39931
39932
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39930

def to_json
  JSON.dump(to_hash)
end