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.



13160
13161
13162
13163
13164
13165
13166
13167
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13160

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.



13158
13159
13160
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13158

def email
  @email
end

#nameObject (readonly)

Returns the value of attribute name.



13158
13159
13160
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13158

def name
  @name
end

#numberObject (readonly)

Returns the value of attribute number.



13158
13159
13160
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13158

def number
  @number
end

#phoneObject (readonly)

Returns the value of attribute phone.



13158
13159
13160
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13158

def phone
  @phone
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13173
13174
13175
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13173

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

#to_hashObject



13177
13178
13179
13180
13181
13182
13183
13184
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13177

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

#to_jsonObject



13169
13170
13171
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13169

def to_json
  JSON.dump(to_hash)
end