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.



40558
40559
40560
40561
40562
40563
40564
40565
40566
40567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40558

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.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



40556
40557
40558
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40556

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



40573
40574
40575
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40573

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

#to_hashObject



40577
40578
40579
40580
40581
40582
40583
40584
40585
40586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40577

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



40569
40570
40571
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40569

def to_json
  JSON.dump(to_hash)
end