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.



12289
12290
12291
12292
12293
12294
12295
12296
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12289

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.



12287
12288
12289
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12287

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



12287
12288
12289
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12287

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



12287
12288
12289
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12287

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



12287
12288
12289
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12287

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12302
12303
12304
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12302

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

#to_hashObject



12306
12307
12308
12309
12310
12311
12312
12313
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12306

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

#to_jsonObject



12298
12299
12300
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12298

def to_json
  JSON.dump(to_hash)
end