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.



11376
11377
11378
11379
11380
11381
11382
11383
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11376

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

#email ⇒ Object (readonly)

Returns the value of attribute email.



11374
11375
11376
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11374

def email
  @email
end

#name ⇒ Object (readonly)

Returns the value of attribute name.



11374
11375
11376
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11374

def name
  @name
end

#number ⇒ Object (readonly)

Returns the value of attribute number.



11374
11375
11376
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11374

def number
  @number
end

#phone ⇒ Object (readonly)

Returns the value of attribute phone.



11374
11375
11376
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11374

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



11389
11390
11391
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11389

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

#to_hash ⇒ Object



11393
11394
11395
11396
11397
11398
11399
11400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11393

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

#to_json ⇒ Object



11385
11386
11387
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11385

def to_json
  JSON.dump(to_hash)
end