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.



15340
15341
15342
15343
15344
15345
15346
15347
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15340

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.



15338
15339
15340
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15338

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



15338
15339
15340
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15338

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



15338
15339
15340
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15338

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



15338
15339
15340
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15338

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



15353
15354
15355
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15353

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

#to_hashObject



15357
15358
15359
15360
15361
15362
15363
15364
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15357

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

#to_jsonObject



15349
15350
15351
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15349

def to_json
  JSON.dump(to_hash)
end