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