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.



13766
13767
13768
13769
13770
13771
13772
13773
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13766

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.



13764
13765
13766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13764

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



13764
13765
13766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13764

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



13764
13765
13766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13764

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



13764
13765
13766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13764

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13779
13780
13781
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13779

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

#to_hashObject



13783
13784
13785
13786
13787
13788
13789
13790
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13783

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

#to_jsonObject



13775
13776
13777
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13775

def to_json
  JSON.dump(to_hash)
end