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.



17807
17808
17809
17810
17811
17812
17813
17814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17807

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))
end

Instance Attribute Details

#emailObject (readonly)

Returns the value of attribute email.



17805
17806
17807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17805

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



17805
17806
17807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17805

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



17805
17806
17807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17805

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



17805
17806
17807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17805

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17820
17821
17822
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17820

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

#to_hashObject



17824
17825
17826
17827
17828
17829
17830
17831
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17824

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

#to_jsonObject



17816
17817
17818
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17816

def to_json
  JSON.dump(to_hash)
end