deltavista_crif_dva_interface 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -79,7 +79,7 @@ module DeltavistaCrifDvaInterface
79
79
 
80
80
  [address, metadata]
81
81
  else
82
- raise NotFoundError.new(2, "Test")
82
+ raise NotFoundError.new response_code(xml_doc), response_text(xml_doc)
83
83
  end
84
84
  end
85
85
 
@@ -1,27 +1,33 @@
1
1
  module DeltavistaCrifDvaInterface
2
2
  class CreditCheckShortV02 < XmlConverter
3
+ DEFAULT_OPTIONS = {
4
+ :encoding => 'UTF-8',
5
+ :request_type => 'CreditCheckShort'
6
+ }.freeze
3
7
 
4
- # XML request and response encoding
5
- @@encoding = 'UTF-8'
6
8
  # unique id for each request
7
9
  @@reference_id = 1000
8
10
 
9
- def initialize config
10
- @username = config.username
11
- @password = config.password
12
- @request_type = "CreditCheckShort"
11
+ def initialize options
12
+ @config = {}
13
+ if options.is_a? Hash
14
+ @config = DEFAULT_OPTIONS.merge(options)
15
+ else
16
+ @config[:username] = options.username
17
+ @config[:password] = options.password
18
+ @config = DEFAULT_OPTIONS.merge(@config)
19
+ end
13
20
  end
14
21
 
15
22
  def to_xml(address)
16
- puts address.inspect
17
- builder = Nokogiri::XML::Builder.new(:encoding => @@encoding) do |xml|
23
+ builder = Nokogiri::XML::Builder.new(:encoding => @config[:encoding]) do |xml|
18
24
  xml.dvaCheckRequest {
19
25
  xml.identity {
20
- xml.username @username
21
- xml.password @password
26
+ xml.username @config[:username]
27
+ xml.password @config[:password]
22
28
  }
23
29
  xml.reference @@reference_id
24
- xml.requestType @request_type
30
+ xml.requestType @config[:request_type]
25
31
  xml.private {
26
32
  %w(title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
27
33
  xml.send(key, address[key.downcase]) if address[key.downcase] && !address[key.downcase].empty?
@@ -34,39 +40,29 @@ module DeltavistaCrifDvaInterface
34
40
  end
35
41
 
36
42
  def to_hash(xml_body)
37
- puts xml_body
38
- xml_doc = Nokogiri.XML(xml_body, nil, @@encoding)
43
+ xml_doc = Nokogiri.XML(xml_body, nil, @config[:encoding])
39
44
  if valid_response? xml_doc
40
45
  # private tag
41
46
  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 score).each do |key|
47
+ xml_doc.xpath("//dvaCheckResponse/private").each do |private_node|
48
+ %w(addressId title lastName firstName maidenName street house poBox zip city country phone birthDate sex).each do |key|
44
49
  if key == "country"
45
- address[key.downcase] = convert_country(private_node.xpath(key).collect(&:text)[0])
50
+ address[key.downcase.to_sym] = convert_country get_value(private_node, key)
46
51
  else
47
- address[key.downcase] = private_node.xpath(key).collect(&:text)[0]
52
+ address[key.downcase.to_sym] = get_value(private_node, key)
48
53
  end
49
54
  end
50
55
  end
51
- xml_doc.xpath("//payLoad").each do |payload_node|
56
+ xml_doc.xpath("//dvaCheckResponse/private/payLoad").each do |payload_node|
52
57
  %w(personStatus score decision hasDebt decisionComment).each do |key|
53
- address[key.downcase] = payload_node.xpath(key).collect(&:text)[0]
58
+ address[key.downcase.to_sym] = get_value(payload_node, key)
54
59
  end
55
60
  end
56
61
  address
57
62
  else
58
- puts "Response not valid!"
59
- nil
63
+ raise NotFoundError.new response_code(xml_doc), response_text(xml_doc)
60
64
  end
61
65
  end
62
-
63
- def response_code(xml)
64
- xml.xpath("//response/responseCode").collect(&:text)[0]
65
- end
66
-
67
- def valid_response?(xml)
68
- response_code(xml) == '0' ? true : false
69
- end
70
66
  end
71
67
  end
72
68
 
@@ -32,7 +32,6 @@ module DeltavistaCrifDvaInterface
32
32
  end
33
33
 
34
34
  def extract_response(xml_body)
35
- puts xml_body
36
35
  @parser.to_hash(xml_body)
37
36
  end
38
37
  end
@@ -1,3 +1,3 @@
1
1
  module DeltavistaCrifDvaInterface
2
- VERSION = "0.0.15"
2
+ VERSION = "0.0.16"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: deltavista_crif_dva_interface
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.15
5
+ version: 0.0.16
6
6
  platform: ruby
7
7
  authors:
8
8
  - Marc Cadalbert
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2012-03-27 00:00:00 +02:00
14
+ date: 2012-03-28 00:00:00 +02:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency