callcredit 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/callcredit/middleware/check_response.rb +2 -2
- data/lib/callcredit/response.rb +2 -0
- data/lib/callcredit/version.rb +1 -1
- data/spec/checks/id_enhanced_spec.rb +2 -11
- data/spec/fixtures/request.xml +1 -1
- data/spec/fixtures/response.xml +98 -0
- data/spec/fixtures/system_call_failure.xml +7 -0
- data/spec/request_spec.rb +12 -14
- data/spec/response_spec.rb +11 -0
- data/spec/spec_helper.rb +4 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6fd66f12894e3525ef98fd4192476f407c8b163
|
4
|
+
data.tar.gz: f82113873639cb39ed16a22b8aeeaa7623ff7a07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b67b4c59f4de25e394bd99a378f756b2896d51e98d676376a5cdfc1a1b251f45dfa828c9af8b1b1bbac1cc8769439c6cd6187c2a2ab8a43e0d05cbb38a1f994
|
7
|
+
data.tar.gz: 78e6accb62801e823ad54f27819142ad75c26215bad8104b4cc202b52c92d865ebca50a1531236993473a4d6f00c54bf7e449ab334c1a9426ca642c31652c9f0
|
data/CHANGELOG.md
CHANGED
@@ -9,8 +9,8 @@ module Callcredit
|
|
9
9
|
|
10
10
|
if results["Errors"]
|
11
11
|
errors = results["Errors"].values.flatten
|
12
|
-
|
13
|
-
raise APIError.new(
|
12
|
+
messages = errors.map { |e| e.is_a?(Hash) ? e["__content__"] : e }
|
13
|
+
raise APIError.new(messages.join(" | "), env[:status], env)
|
14
14
|
end
|
15
15
|
response_values(env)
|
16
16
|
end
|
data/lib/callcredit/response.rb
CHANGED
data/lib/callcredit/version.rb
CHANGED
@@ -7,17 +7,8 @@ describe Callcredit::Checks::IDEnhanced do
|
|
7
7
|
|
8
8
|
let(:response_hash) { { status: status, body: body } }
|
9
9
|
let(:status) { 200 }
|
10
|
-
let(:body)
|
11
|
-
|
12
|
-
<Result>
|
13
|
-
<Displays>
|
14
|
-
<InputData/>
|
15
|
-
<IdentityCheck/>
|
16
|
-
</Displays>
|
17
|
-
</Result>
|
18
|
-
<Errors/>
|
19
|
-
</Results>"
|
20
|
-
end
|
10
|
+
let(:body) { response_xml }
|
11
|
+
let(:response_xml) { load_fixture('response.xml') }
|
21
12
|
before { stub_request(:get, config[:api_endpoint]).to_return(response_hash) }
|
22
13
|
|
23
14
|
describe "#perform" do
|
data/spec/fixtures/request.xml
CHANGED
@@ -0,0 +1,98 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Results xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:/tac/Customer-Output-V4-5-3.xsd" APIVERSION="4.5.3 - 20131119">
|
3
|
+
<Result RID="" PID="LTJ-CT2-1606-13927-46399" DateTime="18-02-2014 18:00">
|
4
|
+
<Displays>
|
5
|
+
<ChecksCompleted>
|
6
|
+
<BankStandard>no</BankStandard>
|
7
|
+
<BankEnhanced>no</BankEnhanced>
|
8
|
+
<CardLive>no</CardLive>
|
9
|
+
<CardEnhanced>no</CardEnhanced>
|
10
|
+
<IDEnhanced>yes</IDEnhanced>
|
11
|
+
<NCOAAlert>no</NCOAAlert>
|
12
|
+
<CallValidate3D>no</CallValidate3D>
|
13
|
+
<TheAffordabilityReport>no</TheAffordabilityReport>
|
14
|
+
<DeliveryFraud>no</DeliveryFraud>
|
15
|
+
<EmailValidate>no</EmailValidate>
|
16
|
+
<CreditScore>no</CreditScore>
|
17
|
+
<Zodiac>no</Zodiac>
|
18
|
+
<IPAddress>no</IPAddress>
|
19
|
+
<BankAccountPlus>no</BankAccountPlus>
|
20
|
+
<BankOFA>no</BankOFA>
|
21
|
+
<CardOFA>no</CardOFA>
|
22
|
+
</ChecksCompleted>
|
23
|
+
<InputData>
|
24
|
+
<Individual>
|
25
|
+
<Dateofbirth>01/01/1901</Dateofbirth>
|
26
|
+
<Title>Mr</Title>
|
27
|
+
<Firstname>Grey</Firstname>
|
28
|
+
<Surname>Baker</Surname>
|
29
|
+
</Individual>
|
30
|
+
<Address>
|
31
|
+
<Buildingnumber>1</Buildingnumber>
|
32
|
+
<Postcode>EX8M PLE</Postcode>
|
33
|
+
</Address>
|
34
|
+
</InputData>
|
35
|
+
<IdentityCheck>
|
36
|
+
<appverified>Yes</appverified>
|
37
|
+
<matchlevel>IndividualReport</matchlevel>
|
38
|
+
<ervalid>4</ervalid>
|
39
|
+
<levelofconfidenceer>-4</levelofconfidenceer>
|
40
|
+
<levelofconfidencedob>3</levelofconfidencedob>
|
41
|
+
<levelofconfidenceshare>3</levelofconfidenceshare>
|
42
|
+
<levelofconfidenceccjs>0</levelofconfidenceccjs>
|
43
|
+
<levelofconfidencebai>0</levelofconfidencebai>
|
44
|
+
<levelofconfidenceinvestors>0</levelofconfidenceinvestors>
|
45
|
+
<confirmatorydobs>2</confirmatorydobs>
|
46
|
+
<totaldobs>3</totaldobs>
|
47
|
+
<numprimarychecks>4</numprimarychecks>
|
48
|
+
<numcorroborativechecks>1</numcorroborativechecks>
|
49
|
+
<numprimaryotheridsconfirmed>0</numprimaryotheridsconfirmed>
|
50
|
+
<numccjs>0</numccjs>
|
51
|
+
<numbais>0</numbais>
|
52
|
+
<numinvestors>0</numinvestors>
|
53
|
+
<numaddresslinks>0</numaddresslinks>
|
54
|
+
<numsharerecords>3</numsharerecords>
|
55
|
+
<halomatch>false</halomatch>
|
56
|
+
<readmatch>false</readmatch>
|
57
|
+
<grodeceased>false</grodeceased>
|
58
|
+
<dvlawarning>false</dvlawarning>
|
59
|
+
<passportwarning>false</passportwarning>
|
60
|
+
<namepicklistfound>false</namepicklistfound>
|
61
|
+
<addresspicklistfound>false</addresspicklistfound>
|
62
|
+
<IDBasic/>
|
63
|
+
</IdentityCheck>
|
64
|
+
<AgeVerify>
|
65
|
+
<Age>113</Age>
|
66
|
+
<DateOfBirth>1901-01-01</DateOfBirth>
|
67
|
+
<Over18>yes</Over18>
|
68
|
+
</AgeVerify>
|
69
|
+
<OtherChecks>
|
70
|
+
<IdentityResult>Fail</IdentityResult>
|
71
|
+
<IdentityScore>40</IdentityScore>
|
72
|
+
</OtherChecks>
|
73
|
+
<VelocityChecks>
|
74
|
+
<card/>
|
75
|
+
<bank/>
|
76
|
+
<individual/>
|
77
|
+
<email/>
|
78
|
+
</VelocityChecks>
|
79
|
+
<Warnings>
|
80
|
+
<NonGBRCardWarning>false</NonGBRCardWarning>
|
81
|
+
<NamePicklistWarning>false</NamePicklistWarning>
|
82
|
+
<AddressPicklistWarning>false</AddressPicklistWarning>
|
83
|
+
<PAFNonValidWarning>false</PAFNonValidWarning>
|
84
|
+
<CardAccountClosedWarning>false</CardAccountClosedWarning>
|
85
|
+
<BankAccountClosedWarning>false</BankAccountClosedWarning>
|
86
|
+
</Warnings>
|
87
|
+
<InternalUse>
|
88
|
+
<CESValue>40</CESValue>
|
89
|
+
<BESValue>40</BESValue>
|
90
|
+
<CESCARD_DIAG>WVRveE9udHBPakE3Y3pveE1qZzZJalBMSW43aktyRmRLWWdINnI3aER3ZVIvN3hkRjNqUm11ZzRwTnV6UjE4bGJkZUdlcTRPVkJ6b1BYWXNIRE8wMU1wRDhpS1ZUek50U250V0oxNkJRYys3MmxNbE0vVXlWVzgwRHlyKzZFSjF2M29PbXIzOE53VUY4cVE0NTVObTVhN04rNGFIMENlRlQ0ZlpsOTh2VzYrQzNvSzNhNHUwcG5hSmFYd1RiRlNpSWp0OSNLRVlTI7uQIxTC60UH5vu/HJ4ZevjOtRN5tnNeDSh971BnCn1rjP0hyhzgvVkH7Vd+GYNfrMDQDgjc4QOaFGr+q2BynE5P58rjjFxi6f0nNvkcToZBb+r3ahzjBhBCmEcVJT8Uva2ACFpTtM1eDtTEF/PAFpT2qTjngpUUNMpHRZ9t/67M+xNy+VyG1C32xxMb53HeTkbkON2UIUPXWvJ2sKbU9I1IGUMZFI8BNLwHegpSD9BIHB0U91aSWOjuv3Ci+sQkyk9x2nA5zuQVaVo3g531MhVD9Rve30KqKvw0wRbRve0v6hDbMgZ1XpQHK9XmS6EqJ1/ayyBUoEfpRwjDWJCPQe4/i2w/FTLvVK8lbqPQc13XMyGDsncoPkp4Ua4YOziqIpT3weRVMZmhK1HawBgamFnY9Aiid137ZIErr2ew8WraEadz7yemK1K+ymHTCCnJA6X1T1zKUCRHvqrEpxtmcHR70XpBgP+vyVcAe3kAnsAuUZVpHCiXKRs0m4qFCGh321nyNVc6+VdPbo0hFOxuK9dvBOiP38WzoT4ELHZMVvRpCFOfAd578kNxcto+AF9w7xWNJ84A0iAoF/toKvPnIIUUrEFaq+eQKqph6vuF7cObkprFzXN6P9dhngNN5kO2q189T7JdM6muk6CQGTFJjFwWfK/yQ8uJouPJw/10bOqjeXiSWB3l7UKvfw==</CESCARD_DIAG>
|
91
|
+
<BESCARD_DIAG>WVRveE9udHBPakE3Y3pveE1qZzZJdHF1UnhLL09TcktGdnd2UEZQc1dOV3p2R0s2eFk0b29ITWdDdGVMU3JaRWdlSWdwRmdpTWZHdFpPNDJ4c25PZGFVYU4xVHpmRFJDSUdDNjc4ZzM4a3d6TURzR2s1RHZJTmhjaFhQdHhiaGtqZm1OdXNZNFVqc1ZwQmtlK0tKTWw5UGZEQVBTNzd6bHFEaXVIYmhaM0U0TkJEdVlVeFZ6TS9hTmo3dEN4dUs2SWp0OSNLRVlTI7Z64Uhikd23HTXpfURK8jnYzpdROA836z/JLON6bPpoq+vZKhUgyhF7WfVCk/ZRiWE53O12uTSDmeTqrH1qRZwxocjTeIPbZ+w88s+PVGY5PYdqNMNXKaKfMW46ZqVxw+ZNQiTq3V77Yy53bM0peoeXzOdMr+pSYwtGKJVG97W86/JJA5D0peLzzHY+kodYk7TE5E+wraROcPfWZhmML2teNf3oyVeIOtnYqvRg1Ixocjo7HDMIhjWZ3oOnsuulYqOJ8djAHHBE1I1zyonrmcYyVxU/0ZBUeTpJ2ato/Wd+1GyoxQtyYndY7p6rp6rss07yXjG1Aay0U4/kZ3yf/c8W9jzg26tQ4gsMa/y5Bo5jBs7o2kBy8r/DJS+r+bWhRqqRcPjifC5bS42EU8s4sOWIoi90lZvExfjTKBJGYvDjAw4coBcK5oSz8OvPushs7Knd2ZyHsX/n9g4+w7xiViFzGyZ+0U7BlU6VQxqP1w+trNjkXd5F5gmZscXxudU/iI9q9EOI+ejkPpC7x9hwr0bzjLsQ9wK/apLyqG9jQ5vutIROzxpOr+dj</BESCARD_DIAG>
|
92
|
+
<CVSVER/>
|
93
|
+
<CAST>.02.7.1.4.1.0.16202370.0</CAST>
|
94
|
+
</InternalUse>
|
95
|
+
</Displays>
|
96
|
+
</Result>
|
97
|
+
<Errors/>
|
98
|
+
</Results>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Results xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:/tac/Customer-Output-V4-5-3.xsd" APIVERSION="4.5.3 - 20131119">
|
3
|
+
<Errors>
|
4
|
+
<Error>Error 1</Error>
|
5
|
+
<FatalError>Error 2</FatalError>
|
6
|
+
</Errors>
|
7
|
+
</Results>
|
data/spec/request_spec.rb
CHANGED
@@ -17,10 +17,7 @@ describe Callcredit::Request do
|
|
17
17
|
subject(:build_request_xml) do
|
18
18
|
request.build_request_xml(:id_enhanced, check_data).to_s
|
19
19
|
end
|
20
|
-
let(:request_xml)
|
21
|
-
path = File.join(File.dirname(__FILE__), 'fixtures', 'request.xml')
|
22
|
-
File.open(path.to_s).read
|
23
|
-
end
|
20
|
+
let(:request_xml) { load_fixture('request.xml') }
|
24
21
|
|
25
22
|
it { should == request_xml }
|
26
23
|
|
@@ -66,11 +63,7 @@ describe Callcredit::Request do
|
|
66
63
|
end
|
67
64
|
|
68
65
|
context "200 with a single error from Callcredit" do
|
69
|
-
let(:body)
|
70
|
-
path = File.join(File.dirname(__FILE__),
|
71
|
-
'fixtures', 'bad_request.xml')
|
72
|
-
File.open(path.to_s).read
|
73
|
-
end
|
66
|
+
let(:body) { load_fixture('bad_request.xml') }
|
74
67
|
|
75
68
|
it "wraps the error" do
|
76
69
|
expect { perform_check }.
|
@@ -79,11 +72,7 @@ describe Callcredit::Request do
|
|
79
72
|
end
|
80
73
|
|
81
74
|
context "200 with multiple errors from Callcredit" do
|
82
|
-
let(:body)
|
83
|
-
path = File.join(File.dirname(__FILE__),
|
84
|
-
'fixtures', 'access_denied.xml')
|
85
|
-
File.open(path.to_s).read
|
86
|
-
end
|
75
|
+
let(:body) { load_fixture('access_denied.xml') }
|
87
76
|
|
88
77
|
it "wraps the error" do
|
89
78
|
expect { perform_check }.
|
@@ -91,6 +80,15 @@ describe Callcredit::Request do
|
|
91
80
|
end
|
92
81
|
end
|
93
82
|
|
83
|
+
context "200 with errors from Callcredit that aren't in a module" do
|
84
|
+
let(:body) { load_fixture('system_call_failure.xml') }
|
85
|
+
|
86
|
+
it "wraps the error" do
|
87
|
+
expect { perform_check }.
|
88
|
+
to raise_error(Callcredit::APIError, "Error 1 | Error 2")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
94
92
|
context "200 with unexpected XML" do
|
95
93
|
let(:body) { "<TopLevel></TopLevel>" }
|
96
94
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'multi_xml'
|
3
|
+
|
4
|
+
describe Callcredit::Response do
|
5
|
+
let(:result_hash) { MultiXml.parse(load_fixture('response.xml')) }
|
6
|
+
subject(:response) { Callcredit::Response.new(result_hash) }
|
7
|
+
|
8
|
+
it "makes some helper methods available" do
|
9
|
+
response.pid.should == "LTJ-CT2-1606-13927-46399"
|
10
|
+
end
|
11
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,6 +6,10 @@ def configure_callcredit
|
|
6
6
|
Callcredit.configure { |config| config[:first_name] = "Grey" }
|
7
7
|
end
|
8
8
|
|
9
|
+
def load_fixture(*filename)
|
10
|
+
File.open(File.join('spec', 'fixtures', *filename)).read
|
11
|
+
end
|
12
|
+
|
9
13
|
shared_examples "it validates presence" do |property|
|
10
14
|
context "with a missing #{property}" do
|
11
15
|
before { check_data.delete(property) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: callcredit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grey Baker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -127,7 +127,10 @@ files:
|
|
127
127
|
- spec/fixtures/access_denied.xml
|
128
128
|
- spec/fixtures/bad_request.xml
|
129
129
|
- spec/fixtures/request.xml
|
130
|
+
- spec/fixtures/response.xml
|
131
|
+
- spec/fixtures/system_call_failure.xml
|
130
132
|
- spec/request_spec.rb
|
133
|
+
- spec/response_spec.rb
|
131
134
|
- spec/spec_helper.rb
|
132
135
|
homepage: https://github.com/gocardless/callcredit-ruby
|
133
136
|
licenses: []
|
@@ -159,5 +162,8 @@ test_files:
|
|
159
162
|
- spec/fixtures/access_denied.xml
|
160
163
|
- spec/fixtures/bad_request.xml
|
161
164
|
- spec/fixtures/request.xml
|
165
|
+
- spec/fixtures/response.xml
|
166
|
+
- spec/fixtures/system_call_failure.xml
|
162
167
|
- spec/request_spec.rb
|
168
|
+
- spec/response_spec.rb
|
163
169
|
- spec/spec_helper.rb
|