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



8350
8351
8352
8353
8354
8355
8356
8357
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8350

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.



8348
8349
8350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8348

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



8348
8349
8350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8348

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



8348
8349
8350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8348

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



8348
8349
8350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8348

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



8363
8364
8365
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8363

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

#to_hashObject



8367
8368
8369
8370
8371
8372
8373
8374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8367

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

#to_jsonObject



8359
8360
8361
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 8359

def to_json
  JSON.dump(to_hash)
end