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
- @parser = CreditCheckShortV02.new config
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|
@@ -1,3 +1,3 @@
1
1
  module DeltavistaCrifDvaInterface
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
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
- date: 2012-03-06 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: &2164560440 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: *2164560440
25
- - !ruby/object:Gem::Dependency
26
- name: nokogiri
27
- requirement: &2164560020 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *2164560020
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
- files:
43
- - lib/deltavista_crif_dva_interface/config.rb
44
- - lib/deltavista_crif_dva_interface/credit_check_short_v02.rb
45
- - lib/deltavista_crif_dva_interface/delta_vista_service.rb
46
- - lib/deltavista_crif_dva_interface/restful_service.rb
47
- - lib/deltavista_crif_dva_interface/version.rb
48
- - lib/deltavista_crif_dva_interface.rb
49
- homepage: ''
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
- require_paths:
54
- - lib
55
- required_ruby_version: !ruby/object:Gem::Requirement
61
+
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
56
65
  none: false
57
- requirements:
58
- - - ! '>='
59
- - !ruby/object:Gem::Version
60
- version: '0'
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
- - !ruby/object:Gem::Version
66
- version: '0'
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.8.17
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
+