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.



21495
21496
21497
21498
21499
21500
21501
21502
21503
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21495

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))
  @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



21493
21494
21495
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21493

def address
  @address
end

#emailObject (readonly)

Returns the value of attribute email.



21493
21494
21495
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21493

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



21493
21494
21495
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21493

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



21493
21494
21495
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21493

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



21493
21494
21495
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21493

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



21509
21510
21511
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21509

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

#to_hashObject



21513
21514
21515
21516
21517
21518
21519
21520
21521
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21513

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

#to_jsonObject



21505
21506
21507
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21505

def to_json
  JSON.dump(to_hash)
end