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.



15273
15274
15275
15276
15277
15278
15279
15280
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15273

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.



15271
15272
15273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15271

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



15271
15272
15273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15271

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



15271
15272
15273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15271

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



15271
15272
15273
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15271

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



15286
15287
15288
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15286

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

#to_hashObject



15290
15291
15292
15293
15294
15295
15296
15297
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15290

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

#to_jsonObject



15282
15283
15284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15282

def to_json
  JSON.dump(to_hash)
end