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.



39972
39973
39974
39975
39976
39977
39978
39979
39980
39981
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39972

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.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



39970
39971
39972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39970

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



39987
39988
39989
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39987

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

#to_hashObject



39991
39992
39993
39994
39995
39996
39997
39998
39999
40000
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39991

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



39983
39984
39985
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 39983

def to_json
  JSON.dump(to_hash)
end