deltavista_crif_dva_interface 0.0.3 → 0.0.4
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.
@@ -3,6 +3,7 @@ require "deltavista_crif_dva_interface/config"
|
|
3
3
|
require "deltavista_crif_dva_interface/restful_service"
|
4
4
|
require "deltavista_crif_dva_interface/delta_vista_service"
|
5
5
|
require "deltavista_crif_dva_interface/credit_check_short_v02"
|
6
|
+
require "deltavista_crif_dva_interface/address_update"
|
6
7
|
|
7
8
|
module DeltavistaCrifDvaInterface
|
8
9
|
# Your code goes here...
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module DeltavistaCrifDvaInterface
|
2
|
+
class AddressUpdate
|
3
|
+
|
4
|
+
# XML request and response encoding
|
5
|
+
@@encoding = 'UTF-8'
|
6
|
+
# unique id for each request
|
7
|
+
@@reference_id = 1000
|
8
|
+
|
9
|
+
def initialize config
|
10
|
+
@username = config.username
|
11
|
+
@password = config.password
|
12
|
+
@request_type = "AddressUpdate"
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_xml(address)
|
16
|
+
puts address.inspect
|
17
|
+
builder = Nokogiri::XML::Builder.new(:encoding => @@encoding) do |xml|
|
18
|
+
xml.dvaCheckRequest {
|
19
|
+
xml.identity {
|
20
|
+
xml.username @username
|
21
|
+
xml.password @password
|
22
|
+
}
|
23
|
+
xml.reference @@reference_id
|
24
|
+
xml.requestType @request_type
|
25
|
+
xml.private {
|
26
|
+
%w(title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
|
27
|
+
xml.send(key, address[key.downcase]) if address[key.downcase] && !address[key.downcase].empty?
|
28
|
+
end
|
29
|
+
}
|
30
|
+
}
|
31
|
+
end
|
32
|
+
@@reference_id += 1
|
33
|
+
builder.to_xml
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_hash(xml_body)
|
37
|
+
puts xml_body
|
38
|
+
xml_doc = Nokogiri::XML(xml_body, @@encoding)
|
39
|
+
if valid_response? xml_doc
|
40
|
+
# private tag
|
41
|
+
address = {}
|
42
|
+
xml_doc.xpath("//private").each do |private_node|
|
43
|
+
%w(addressId title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
|
44
|
+
if key == "country"
|
45
|
+
address[key.downcase] = convert_country(private_node.xpath(key).collect(&:text)[0])
|
46
|
+
else
|
47
|
+
address[key.downcase] = private_node.xpath(key).collect(&:text)[0]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
xml_doc.xpath("//private/payLoad").each do |payload_node|
|
52
|
+
%w(matchLevel isDeceased dateOfDeath reqDeliverabilityClass higherDelivKnown).each do |key|
|
53
|
+
address[key.downcase] = payload_node.xpath(key).collect(&:text)[0]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
xml_doc.xpath("//private/payLoad/highestAddress").each do |highestaddress_node|
|
57
|
+
%w(deliverabilityClass).each do |key|
|
58
|
+
address[key.downcase] = highestaddress_node.xpath(key).collect(&:text)[0]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
address
|
62
|
+
else
|
63
|
+
puts "Response not valid!"
|
64
|
+
nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def response_code(xml)
|
69
|
+
xml.xpath("//response/responseCode").collect(&:text)[0]
|
70
|
+
end
|
71
|
+
|
72
|
+
def valid_response?(xml)
|
73
|
+
response_code(xml) == '0' ? true : false
|
74
|
+
end
|
75
|
+
|
76
|
+
def convert_country(alpha3_code)
|
77
|
+
#SunDawg::CountryIsoTranslater.translate_standard(alpha3_code, "alpha3", "alpha2")
|
78
|
+
alpha3_code
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
@@ -5,7 +5,7 @@ module DeltavistaCrifDvaInterface
|
|
5
5
|
|
6
6
|
def initialize config
|
7
7
|
@url = config.deltavista_service_url
|
8
|
-
@
|
8
|
+
@config = config
|
9
9
|
end
|
10
10
|
|
11
11
|
# Takes an address object and sends it as XML to the DeltaVista-Interface.
|
@@ -14,6 +14,16 @@ module DeltavistaCrifDvaInterface
|
|
14
14
|
#
|
15
15
|
# If the Service is not available a StandardError will be thrown.
|
16
16
|
def credit_check(address)
|
17
|
+
@parser = CreditCheckShortV02.new @config
|
18
|
+
request_body = @parser.to_xml(address)
|
19
|
+
headers = {'Content-Type' => 'text/xml'}
|
20
|
+
post_http_request(@url, request_body, headers) do |data|
|
21
|
+
extract_response data
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def verify_address(address)
|
26
|
+
@parser = AddressUpdate.new @config
|
17
27
|
request_body = @parser.to_xml(address)
|
18
28
|
headers = {'Content-Type' => 'text/xml'}
|
19
29
|
post_http_request(@url, request_body, headers) do |data|
|
metadata
CHANGED
@@ -1,73 +1,84 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: deltavista_crif_dva_interface
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
- Marc Cadalbert
|
7
|
+
authors:
|
8
|
+
- Marc Cadalbert
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
12
|
+
|
13
|
+
date: 2012-03-22 00:00:00 +01:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rspec
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0"
|
25
|
+
type: :development
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
36
38
|
description: Deltavista Crif DVA Interface
|
37
|
-
email:
|
38
|
-
- mc@impac.ch
|
39
|
+
email:
|
40
|
+
- mc@impac.ch
|
39
41
|
executables: []
|
42
|
+
|
40
43
|
extensions: []
|
44
|
+
|
41
45
|
extra_rdoc_files: []
|
42
|
-
|
43
|
-
|
44
|
-
- lib/deltavista_crif_dva_interface
|
45
|
-
- lib/deltavista_crif_dva_interface/
|
46
|
-
- lib/deltavista_crif_dva_interface/
|
47
|
-
- lib/deltavista_crif_dva_interface/
|
48
|
-
- lib/deltavista_crif_dva_interface.rb
|
49
|
-
|
46
|
+
|
47
|
+
files:
|
48
|
+
- lib/deltavista_crif_dva_interface.rb
|
49
|
+
- lib/deltavista_crif_dva_interface/address_update.rb
|
50
|
+
- lib/deltavista_crif_dva_interface/config.rb
|
51
|
+
- lib/deltavista_crif_dva_interface/credit_check_short_v02.rb
|
52
|
+
- lib/deltavista_crif_dva_interface/delta_vista_service.rb
|
53
|
+
- lib/deltavista_crif_dva_interface/restful_service.rb
|
54
|
+
- lib/deltavista_crif_dva_interface/version.rb
|
55
|
+
has_rdoc: true
|
56
|
+
homepage: ""
|
50
57
|
licenses: []
|
58
|
+
|
51
59
|
post_install_message:
|
52
60
|
rdoc_options: []
|
53
|
-
|
54
|
-
|
55
|
-
|
61
|
+
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
56
65
|
none: false
|
57
|
-
requirements:
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: "0"
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
71
|
none: false
|
63
|
-
requirements:
|
64
|
-
|
65
|
-
|
66
|
-
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: "0"
|
67
76
|
requirements: []
|
77
|
+
|
68
78
|
rubyforge_project: deltavista_crif_dva_interface
|
69
|
-
rubygems_version: 1.
|
79
|
+
rubygems_version: 1.5.1
|
70
80
|
signing_key:
|
71
81
|
specification_version: 3
|
72
82
|
summary: Deltavista Crif DVA Interface
|
73
83
|
test_files: []
|
84
|
+
|