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.



51554
51555
51556
51557
51558
51559
51560
51561
51562
51563
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51554

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.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



51552
51553
51554
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51552

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



51569
51570
51571
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51569

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

#to_hashObject



51573
51574
51575
51576
51577
51578
51579
51580
51581
51582
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51573

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



51565
51566
51567
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 51565

def to_json
  JSON.dump(to_hash)
end