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.



45581
45582
45583
45584
45585
45586
45587
45588
45589
45590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45581

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.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def email
  @email
end

#invoiceObject (readonly)

Returns the value of attribute invoice.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def invoice
  @invoice
end

#nameObject (readonly)

Returns the value of attribute name.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



45579
45580
45581
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45579

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



45596
45597
45598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45596

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

#to_hashObject



45600
45601
45602
45603
45604
45605
45606
45607
45608
45609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45600

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



45592
45593
45594
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 45592

def to_json
  JSON.dump(to_hash)
end