Class: Maxmind::ChargebackRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/maxmind/chargeback_request.rb

Constant Summary collapse

DefaultTimeout =
60

Class Attribute Summary collapse

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs = {}) ⇒ ChargebackRequest

Returns a new instance of ChargebackRequest.



18
19
20
# File 'lib/maxmind/chargeback_request.rb', line 18

def initialize(attrs={})
  self.attributes = attrs
end

Class Attribute Details

.default_request_typeObject

Returns the value of attribute default_request_type.



8
9
10
# File 'lib/maxmind/chargeback_request.rb', line 8

def default_request_type
  @default_request_type
end

.timeoutObject

Returns the value of attribute timeout.



9
10
11
# File 'lib/maxmind/chargeback_request.rb', line 9

def timeout
  @timeout
end

Instance Attribute Details

#chargeback_codeObject

Optional Fields



16
17
18
# File 'lib/maxmind/chargeback_request.rb', line 16

def chargeback_code
  @chargeback_code
end

#client_ipObject

Required Fields



13
14
15
# File 'lib/maxmind/chargeback_request.rb', line 13

def client_ip
  @client_ip
end

#fraud_scoreObject

Optional Fields



16
17
18
# File 'lib/maxmind/chargeback_request.rb', line 16

def fraud_score
  @fraud_score
end

#maxmind_idObject

Optional Fields



16
17
18
# File 'lib/maxmind/chargeback_request.rb', line 16

def maxmind_id
  @maxmind_id
end

#transaction_idObject

Optional Fields



16
17
18
# File 'lib/maxmind/chargeback_request.rb', line 16

def transaction_id
  @transaction_id
end

Instance Method Details

#attributes=(attrs = {}) ⇒ Object



22
23
24
25
26
# File 'lib/maxmind/chargeback_request.rb', line 22

def attributes=(attrs={})
  attrs.each do |k, v|
    self.send("#{k}=", v)
  end
end

#processObject



33
34
35
36
37
# File 'lib/maxmind/chargeback_request.rb', line 33

def process
  process!
rescue Exception => e
  false
end

#process!Object



28
29
30
31
# File 'lib/maxmind/chargeback_request.rb', line 28

def process!
  resp = post(query)
  Maxmind::ChargebackResponse.new(resp.message, resp.code)
end

#queryObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/maxmind/chargeback_request.rb', line 39

def query
  validate

  required_fields = {
    :ip_address       => @client_ip,
  }

  optional_fields = {
    :chargeback_code  => @chargeback_code,
    :fraud_score      => @fraud_score,
    :maxmind_id       => @maxmind_id,
    :transaction_id   => @transaction_id
  }

  field_set = required_fields.merge(optional_fields)
  field_set.reject {|k, v| v.nil? }.to_json
end