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.



17528
17529
17530
17531
17532
17533
17534
17535
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17528

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.



17526
17527
17528
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17526

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



17526
17527
17528
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17526

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



17526
17527
17528
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17526

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



17526
17527
17528
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17526

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17541
17542
17543
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17541

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

#to_hashObject



17545
17546
17547
17548
17549
17550
17551
17552
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17545

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

#to_jsonObject



17537
17538
17539
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17537

def to_json
  JSON.dump(to_hash)
end