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
- @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
+