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.



12243
12244
12245
12246
12247
12248
12249
12250
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12243

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.



12241
12242
12243
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12241

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



12241
12242
12243
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12241

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



12241
12242
12243
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12241

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



12241
12242
12243
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12241

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12256
12257
12258
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12256

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

#to_hashObject



12260
12261
12262
12263
12264
12265
12266
12267
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12260

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

#to_jsonObject



12252
12253
12254
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12252

def to_json
  JSON.dump(to_hash)
end