Class: Io::Flow::V0::Models::Customer

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 = {}) ⇒ Customer

Returns a new instance of Customer.



20772
20773
20774
20775
20776
20777
20778
20779
20780
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20772

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:name], 'Customer')
  @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)))
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



20770
20771
20772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20770

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



20770
20771
20772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20770

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



20770
20771
20772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20770

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



20770
20771
20772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20770

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



20770
20771
20772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20770

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



20786
20787
20788
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20786

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

#to_hashObject



20790
20791
20792
20793
20794
20795
20796
20797
20798
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20790

def to_hash
  {
    :name => name.to_hash,
    :number => number,
    :phone => phone,
    :email => email,
    :address => address.nil? ? nil : address.to_hash
  }
end

#to_jsonObject



20782
20783
20784
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20782

def to_json
  JSON.dump(to_hash)
end