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.



14590
14591
14592
14593
14594
14595
14596
14597
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14590

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.



14588
14589
14590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14588

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



14588
14589
14590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14588

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



14588
14589
14590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14588

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



14588
14589
14590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14588

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



14603
14604
14605
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14603

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

#to_hashObject



14607
14608
14609
14610
14611
14612
14613
14614
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14607

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

#to_jsonObject



14599
14600
14601
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14599

def to_json
  JSON.dump(to_hash)
end