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.



14379
14380
14381
14382
14383
14384
14385
14386
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14379

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.



14377
14378
14379
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14377

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



14377
14378
14379
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14377

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



14377
14378
14379
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14377

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



14377
14378
14379
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14377

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



14392
14393
14394
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14392

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

#to_hashObject



14396
14397
14398
14399
14400
14401
14402
14403
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14396

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

#to_jsonObject



14388
14389
14390
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14388

def to_json
  JSON.dump(to_hash)
end