deltavista_crif_dva_interface 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,29 @@
1
1
  module DeltavistaCrifDvaInterface
2
2
  class CreditCheckShortV02 < XmlConverter
3
+ attr_reader :logger
4
+
3
5
  DEFAULT_OPTIONS = {
4
6
  :encoding => 'UTF-8',
5
7
  :request_type => 'CreditCheckShort'
6
8
  }.freeze
7
9
 
10
+ PRIVATE_NODE = 'private'
11
+ PRIVATE_KEYS = %w(title lastName firstName maidenName street house poBox zip city country phone)
12
+ PRIVATE_RESPONSE_KEYS = PRIVATE_KEYS.unshift('addressId')
13
+
14
+ COMPANY_NODE = 'company'
15
+ COMPANY_KEYS = %w(name street house poBox zip city country phone)
16
+ COMPANY_RESPONSE_KEYS = COMPANY_KEYS.unshift('addressId')
17
+
18
+ PAYLOAD_NODE = 'payLoad'
19
+ PAYLOAD_RESPONSE_KEYS = %w(personStatus score decision hasDebt decisionComment)
20
+
8
21
  # unique id for each request
9
22
  @@reference_id = 1000
10
23
 
11
24
  def initialize options
12
25
  @config = {}
26
+ @logger = Logger.new(STDOUT)
13
27
  if options.is_a? Hash
14
28
  @config = DEFAULT_OPTIONS.merge(options)
15
29
  else
@@ -28,34 +42,54 @@ module DeltavistaCrifDvaInterface
28
42
  }
29
43
  xml.reference @@reference_id
30
44
  xml.requestType @config[:request_type]
31
- xml.private {
32
- %w(title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
45
+ # Company Flag (to be set in the address scope)
46
+ if address['is_company']
47
+ keys = COMPANY_KEYS
48
+ node = COMPANY_NODE
49
+ else
50
+ keys = PRIVATE_KEYS
51
+ node = PRIVATE_NODE
52
+ end
53
+ xml.__send__(node) {
54
+ keys.each do |key|
33
55
  xml.send(key, address[key.downcase]) if address[key.downcase] && !address[key.downcase].empty?
34
56
  end
35
57
  }
36
58
  }
37
59
  end
38
60
  @@reference_id += 1
39
- builder.to_xml
61
+ result = builder.to_xml
62
+ logger.debug result if logger.debug?
63
+ result
40
64
  end
41
65
 
42
66
  def to_hash(xml_body)
43
- puts xml_body
67
+ logger.debug xml_body if logger.debug?
44
68
  xml_doc = Nokogiri.XML(xml_body, nil, @config[:encoding])
45
69
  if valid_response? xml_doc
46
70
  # private tag
47
71
  address = {}
48
- xml_doc.xpath("//dvaCheckResponse/private").each do |private_node|
49
- %w(addressId title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
50
- if key == "country"
72
+ if xml_doc.xpath("//dvaCheckResponse/#{PRIVATE_NODE}")
73
+ node = PRIVATE_NODE
74
+ keys = PRIVATE_RESPONSE_KEYS
75
+ elsif xml_doc.xpath("//dvaCheckResponse/#{COMPANY_NODE}")
76
+ node = COMPANY_NODE
77
+ keys = COMPANY_RESPONSE_KEYS
78
+ else
79
+ logger.error 'Neither company nor private Node were found in the DVA Response'
80
+ raise NotFoundError.new response_code(xml_doc), response_text(xml_doc)
81
+ end
82
+ xml_doc.xpath("//dvaCheckResponse/#{node}").each do |private_node|
83
+ keys.each do |key|
84
+ if key == 'country'
51
85
  address[key.downcase.to_sym] = convert_country get_value(private_node, key)
52
86
  else
53
87
  address[key.downcase.to_sym] = get_value(private_node, key)
54
88
  end
55
89
  end
56
90
  end
57
- xml_doc.xpath("//dvaCheckResponse/private/payLoad").each do |payload_node|
58
- %w(personStatus score decision hasDebt decisionComment).each do |key|
91
+ xml_doc.xpath("//dvaCheckResponse/#{node}/#{PAYLOAD_NODE}").each do |payload_node|
92
+ PAYLOAD_RESPONSE_KEYS.each do |key|
59
93
  address[key.downcase.to_sym] = get_value(payload_node, key)
60
94
  end
61
95
  end
@@ -1,3 +1,3 @@
1
1
  module DeltavistaCrifDvaInterface
2
- VERSION = "0.0.17"
2
+ VERSION = "0.0.18"
3
3
  end
metadata CHANGED
@@ -1,99 +1,121 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: deltavista_crif_dva_interface
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.18
4
5
  prerelease:
5
- version: 0.0.17
6
6
  platform: ruby
7
- authors:
8
- - Marc Cadalbert
9
- - Maik Duff
7
+ authors:
8
+ - Marc Cadalbert
9
+ - Maik Duff
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2012-03-29 00:00:00 +02:00
15
- default_executable:
16
- dependencies:
17
- - !ruby/object:Gem::Dependency
18
- name: rspec
19
- prerelease: false
20
- requirement: &id001 !ruby/object:Gem::Requirement
21
- none: false
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: "0"
26
- type: :development
27
- version_requirements: *id001
28
- - !ruby/object:Gem::Dependency
29
- name: nokogiri
30
- prerelease: false
31
- requirement: &id002 !ruby/object:Gem::Requirement
32
- none: false
33
- requirements:
34
- - - "="
35
- - !ruby/object:Gem::Version
36
- version: 1.5.0
37
- type: :runtime
38
- version_requirements: *id002
39
- - !ruby/object:Gem::Dependency
40
- name: sundawg_country_codes
41
- prerelease: false
42
- requirement: &id003 !ruby/object:Gem::Requirement
43
- none: false
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: "0"
48
- type: :runtime
49
- version_requirements: *id003
50
- description: This interface is used to get credit check and address informations from Deltavista service.
51
- email:
52
- - mc@impac.ch
53
- - md@impac.ch
13
+ date: 2013-04-26 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rake
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: nokogiri
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.5.0
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - '='
61
+ - !ruby/object:Gem::Version
62
+ version: 1.5.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: sundawg_country_codes
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ description: This interface is used to get credit check and address informations from
80
+ Deltavista service.
81
+ email:
82
+ - mc@impac.ch
83
+ - md@impac.ch
54
84
  executables: []
55
-
56
85
  extensions: []
57
-
58
86
  extra_rdoc_files: []
59
-
60
- files:
61
- - lib/deltavista_crif_dva_interface.rb
62
- - lib/deltavista_crif_dva_interface/address_update.rb
63
- - lib/deltavista_crif_dva_interface/config.rb
64
- - lib/deltavista_crif_dva_interface/credit_check_short_v02.rb
65
- - lib/deltavista_crif_dva_interface/delta_vista_service.rb
66
- - lib/deltavista_crif_dva_interface/errors.rb
67
- - lib/deltavista_crif_dva_interface/restful_service.rb
68
- - lib/deltavista_crif_dva_interface/version.rb
69
- - lib/deltavista_crif_dva_interface/xml_converter.rb
70
- has_rdoc: true
71
- homepage: ""
87
+ files:
88
+ - lib/deltavista_crif_dva_interface/address_update.rb
89
+ - lib/deltavista_crif_dva_interface/config.rb
90
+ - lib/deltavista_crif_dva_interface/credit_check_short_v02.rb
91
+ - lib/deltavista_crif_dva_interface/delta_vista_service.rb
92
+ - lib/deltavista_crif_dva_interface/errors.rb
93
+ - lib/deltavista_crif_dva_interface/restful_service.rb
94
+ - lib/deltavista_crif_dva_interface/version.rb
95
+ - lib/deltavista_crif_dva_interface/xml_converter.rb
96
+ - lib/deltavista_crif_dva_interface.rb
97
+ homepage: ''
72
98
  licenses: []
73
-
74
99
  post_install_message:
75
100
  rdoc_options: []
76
-
77
- require_paths:
78
- - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
80
104
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: "0"
85
- required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
110
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
91
115
  requirements: []
92
-
93
116
  rubyforge_project: deltavista_crif_dva_interface
94
- rubygems_version: 1.5.1
117
+ rubygems_version: 1.8.24
95
118
  signing_key:
96
119
  specification_version: 3
97
120
  summary: Interface to connect services from Deltavsita
98
121
  test_files: []
99
-