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
|
-
|
32
|
-
|
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
|
-
|
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
|
49
|
-
|
50
|
-
|
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
|
58
|
-
|
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
|
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
|
-
|
9
|
-
|
7
|
+
authors:
|
8
|
+
- Marc Cadalbert
|
9
|
+
- Maik Duff
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
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
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
78
|
-
|
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
|
-
|
84
|
-
|
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
|
-
|
90
|
-
|
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.
|
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
|
-
|