Module: MangoPay::FilterParameters

Defined in:
lib/mangopay/filter_parameters.rb

Class Method Summary collapse

Class Method Details

.filter_hash(hash, to_filter) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/mangopay/filter_parameters.rb', line 28

def self.filter_hash(hash, to_filter)
  hash.each do |k,v|
    if v.is_a?(Hash)
      filter_hash(v, to_filter)
    else
      hash[k] = '[FILTERED]' if to_filter.include?(k)
    end
  end
end

.req_confidential_paramsObject



48
49
50
51
52
53
# File 'lib/mangopay/filter_parameters.rb', line 48

def self.req_confidential_params
  @@req_confidential_params ||= [
    'File', 'IBAN', 'OwnerName', 'OwnerAddress', 'BIC', 'FirstName',
    'LastName', 'Email', 'AddressLine1', 'AddressLine2',
  ].freeze
end

.request(body) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/mangopay/filter_parameters.rb', line 4

def self.request(body)
  begin
    body = JSON.load(body)
  rescue MultiJson::LoadError => e
    return body
  end
  filter_hash(body, req_confidential_params)
  JSON.dump(body)
end

.res_confidential_paramsObject



38
39
40
41
42
43
44
45
46
# File 'lib/mangopay/filter_parameters.rb', line 38

def self.res_confidential_params
  @@res_confidential_params ||= [
    'access_token', 'AccessKey', 'IBAN', 'CardRegistrationURL',
    'PreregistrationData', 'RedirectURL', 'RegistrationData',
    'SecureModeRedirectUrl', 'OwnerName', 'OwnerAddress', 'BIC',
    'FirstName', 'LastName', 'Email', 'AddressLine1',
    'AddressLine2',
  ].freeze
end

.response(body) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mangopay/filter_parameters.rb', line 14

def self.response(body)
  return '' if body.to_s.empty?

  begin
    body = JSON.load(body)
  rescue MultiJson::LoadError => e
    return body
  end
  filter_hash(body, res_confidential_params)
  JSON.dump(body)
end