deltavista_crif_dva_interface 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-