creditsafe 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +66 -17
- data/.github/dependabot.yml +17 -0
- data/.gitignore +4 -2
- data/.rspec +1 -1
- data/.rubocop.yml +18 -11
- data/.ruby-version +1 -1
- data/CHANGELOG.md +64 -45
- data/Gemfile +5 -5
- data/LICENSE.txt +22 -22
- data/README.md +175 -175
- data/creditsafe.gemspec +35 -35
- data/data/creditsafe-live.xml +342 -342
- data/data/creditsafe-test.xml +342 -342
- data/lib/creditsafe/client.rb +165 -158
- data/lib/creditsafe/{constants.rb → country.rb} +49 -49
- data/lib/creditsafe/errors.rb +23 -16
- data/lib/creditsafe/match_type.rb +115 -115
- data/lib/creditsafe/messages.rb +98 -97
- data/lib/creditsafe/namespace.rb +20 -20
- data/lib/creditsafe/request/company_report.rb +42 -42
- data/lib/creditsafe/request/find_company.rb +118 -120
- data/lib/creditsafe/version.rb +5 -5
- data/lib/creditsafe.rb +4 -4
- data/spec/creditsafe/client_spec.rb +431 -423
- data/spec/creditsafe/messages_spec.rb +76 -76
- data/spec/fixtures/company-report-not-found.xml +13 -13
- data/spec/fixtures/company-report-request.xml +1 -1
- data/spec/fixtures/company-report-successful.xml +582 -582
- data/spec/fixtures/error-fault.xml +8 -8
- data/spec/fixtures/error-invalid-credentials.html +31 -31
- data/spec/fixtures/find-companies-error-no-text.xml +11 -11
- data/spec/fixtures/find-companies-error.xml +11 -11
- data/spec/fixtures/find-companies-none-found.xml +13 -13
- data/spec/fixtures/find-companies-request.xml +1 -1
- data/spec/fixtures/find-companies-successful-multi.xml +493 -493
- data/spec/fixtures/find-companies-successful.xml +29 -29
- data/spec/spec_helper.rb +14 -14
- metadata +46 -46
- data/Gemfile.lock +0 -129
data/README.md
CHANGED
@@ -1,175 +1,175 @@
|
|
1
|
-
# creditsafe-ruby
|
2
|
-
|
3
|
-
*Build status: [![Circle CI](https://circleci.com/gh/gocardless/creditsafe-ruby.svg?style=svg&circle-token=3f6e9b24fcc6a57abac110c59395b36032f156a5)](https://circleci.com/gh/gocardless/creditsafe-ruby)*
|
4
|
-
|
5
|
-
A ruby library for interacting with the
|
6
|
-
[Creditsafe](http://www.creditsafeuk.com/) API.
|
7
|
-
|
8
|
-
Currently, it only partially implements the API to support finding companies by
|
9
|
-
registration number (and name in Germany), and retrieving company online reports.
|
10
|
-
|
11
|
-
# Installation
|
12
|
-
|
13
|
-
Install the gem from RubyGems.org by adding the following to your `Gemfile`:
|
14
|
-
|
15
|
-
```ruby
|
16
|
-
gem 'creditsafe', '~> 0.4.0'
|
17
|
-
```
|
18
|
-
|
19
|
-
Just run `bundle install` to install the gem and its dependencies.
|
20
|
-
|
21
|
-
# Usage
|
22
|
-
|
23
|
-
Initialise the client with your `username` and `password`.
|
24
|
-
|
25
|
-
```ruby
|
26
|
-
client = Creditsafe::Client.new(username: "foo", password: "bar")
|
27
|
-
|
28
|
-
# optionally with environment (live is default) and or log level
|
29
|
-
client = Creditsafe::Client.new(username: "foo", password: "bar", environment: :test, log_level: :debug)
|
30
|
-
```
|
31
|
-
|
32
|
-
### Company Search
|
33
|
-
|
34
|
-
To perform a search for a company, you need to provide a valid search criteria, including
|
35
|
-
the country code and a company registration number or company name:
|
36
|
-
|
37
|
-
```ruby
|
38
|
-
client.find_company({ country_code: "GB", registration_number: "07495895" })
|
39
|
-
=> {
|
40
|
-
name: "GOCARDLESS LTD",
|
41
|
-
type: "Ltd",
|
42
|
-
status: "Active",
|
43
|
-
registration_number: "07495895",
|
44
|
-
address: {
|
45
|
-
simple_value: "338-346, GOSWELL, LONDON",
|
46
|
-
postal_code: "EC1V7LQ"
|
47
|
-
},
|
48
|
-
available_report_types: { available_report_type: "Full" },
|
49
|
-
available_languages: { available_language: "EN" },
|
50
|
-
@date_of_latest_accounts: "2014-01-31T00:00:00Z",
|
51
|
-
@online_reports: "true",
|
52
|
-
@monitoring: "false",
|
53
|
-
@country: "GB",
|
54
|
-
@id: "GB003/0/07495895"
|
55
|
-
}
|
56
|
-
```
|
57
|
-
|
58
|
-
In Germany you can also perform a name search. For this you need to provide a country code
|
59
|
-
and a company name, and can optionally provide a postal code or city to filter the results
|
60
|
-
further:
|
61
|
-
|
62
|
-
```ruby
|
63
|
-
client.find_company({ country_code: "DE", company_name: "zalando", postal_code: "10243" })
|
64
|
-
=> [
|
65
|
-
{
|
66
|
-
"name": "Zalando Logistics Süd SE & Co. KG",
|
67
|
-
"type": "NonLtd",
|
68
|
-
"status": "Active",
|
69
|
-
"address": {
|
70
|
-
"street": "Tamara-Danz-Str. 1",
|
71
|
-
"city": "Berlin",
|
72
|
-
"postal_code": "10243"
|
73
|
-
},
|
74
|
-
"available_report_types": {
|
75
|
-
"available_report_type": [
|
76
|
-
"Full",
|
77
|
-
"Basic"
|
78
|
-
]
|
79
|
-
},
|
80
|
-
"available_languages": {
|
81
|
-
"available_language": [
|
82
|
-
"EN",
|
83
|
-
"DE"
|
84
|
-
]
|
85
|
-
},
|
86
|
-
"@online_reports": "true",
|
87
|
-
"@monitoring": "true",
|
88
|
-
"@country": "DE",
|
89
|
-
"@id": "DE001/1/DE20316785",
|
90
|
-
"@safe_number": "DE20316785"
|
91
|
-
},
|
92
|
-
{
|
93
|
-
"name": "Zalando Outlet Store Berlin",
|
94
|
-
"type": "NonLtd",
|
95
|
-
"status": "Active",
|
96
|
-
"address": {
|
97
|
-
"street": "Köpenicker Str. 20",
|
98
|
-
"city": "Berlin",
|
99
|
-
"postal_code": "10997"
|
100
|
-
},
|
101
|
-
"available_report_types": {
|
102
|
-
"available_report_type": [
|
103
|
-
"Full",
|
104
|
-
"Basic"
|
105
|
-
]
|
106
|
-
},
|
107
|
-
"available_languages": {
|
108
|
-
"available_language": [
|
109
|
-
"EN",
|
110
|
-
"DE"
|
111
|
-
]
|
112
|
-
},
|
113
|
-
"@online_reports": "true",
|
114
|
-
"@monitoring": "true",
|
115
|
-
"@country": "DE",
|
116
|
-
"@id": "DE001/1/DE16031795",
|
117
|
-
"@safe_number": "DE16031795"
|
118
|
-
},
|
119
|
-
...
|
120
|
-
]
|
121
|
-
```
|
122
|
-
|
123
|
-
In some countries you can also perform a VAT number search. For this, you need to provide
|
124
|
-
a country code and a VAT number:
|
125
|
-
|
126
|
-
```ruby
|
127
|
-
client.find_company({ country_code: "US", vat_number: "201665019" })
|
128
|
-
=> [
|
129
|
-
{
|
130
|
-
"name": "FACEBOOK, INCORPORATED",
|
131
|
-
"officeType": "HeadOffice",
|
132
|
-
"status": "Active",
|
133
|
-
"registration_number": "0883875",
|
134
|
-
"vat_number": "201665019",
|
135
|
-
"address": {
|
136
|
-
"simple_value": "1601 WILLOW ROAD , MENLO PARK, CA, 94025",
|
137
|
-
"street": "1601 WILLOW ROAD ",
|
138
|
-
"city": "MENLO PARK",
|
139
|
-
"postal_code": "94025",
|
140
|
-
"province": "CA"
|
141
|
-
},
|
142
|
-
"phone_number": "6505434800",
|
143
|
-
"available_report_types": {
|
144
|
-
"available_report_type": "Full"
|
145
|
-
},
|
146
|
-
"available_languages": {
|
147
|
-
"available_language": "EN"
|
148
|
-
},
|
149
|
-
"@online_reports": "true",
|
150
|
-
"@monitoring": "false",
|
151
|
-
"@country": "US",
|
152
|
-
"@id": "US023/X/US22964593",
|
153
|
-
"@safe_number": "US22964593"
|
154
|
-
},
|
155
|
-
...
|
156
|
-
]
|
157
|
-
```
|
158
|
-
|
159
|
-
### Company Report
|
160
|
-
|
161
|
-
To download all the information available in an online company report, you will
|
162
|
-
need the company's Creditsafe identifier (obtainable using
|
163
|
-
[find_company](#find_company) above):
|
164
|
-
|
165
|
-
```ruby
|
166
|
-
client.company_report("GB003/0/07495895")
|
167
|
-
=> {
|
168
|
-
...
|
169
|
-
}
|
170
|
-
```
|
171
|
-
|
172
|
-
|
173
|
-
---
|
174
|
-
|
175
|
-
GoCardless ♥ open source. If you do too, come [join us](https://gocardless.com/jobs#software-engineer).
|
1
|
+
# creditsafe-ruby
|
2
|
+
|
3
|
+
*Build status: [![Circle CI](https://circleci.com/gh/gocardless/creditsafe-ruby.svg?style=svg&circle-token=3f6e9b24fcc6a57abac110c59395b36032f156a5)](https://circleci.com/gh/gocardless/creditsafe-ruby)*
|
4
|
+
|
5
|
+
A ruby library for interacting with the
|
6
|
+
[Creditsafe](http://www.creditsafeuk.com/) API.
|
7
|
+
|
8
|
+
Currently, it only partially implements the API to support finding companies by
|
9
|
+
registration number (and name in Germany), and retrieving company online reports.
|
10
|
+
|
11
|
+
# Installation
|
12
|
+
|
13
|
+
Install the gem from RubyGems.org by adding the following to your `Gemfile`:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'creditsafe', '~> 0.4.0'
|
17
|
+
```
|
18
|
+
|
19
|
+
Just run `bundle install` to install the gem and its dependencies.
|
20
|
+
|
21
|
+
# Usage
|
22
|
+
|
23
|
+
Initialise the client with your `username` and `password`.
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
client = Creditsafe::Client.new(username: "foo", password: "bar")
|
27
|
+
|
28
|
+
# optionally with environment (live is default) and or log level
|
29
|
+
client = Creditsafe::Client.new(username: "foo", password: "bar", environment: :test, log_level: :debug)
|
30
|
+
```
|
31
|
+
|
32
|
+
### Company Search
|
33
|
+
|
34
|
+
To perform a search for a company, you need to provide a valid search criteria, including
|
35
|
+
the country code and a company registration number or company name:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
client.find_company({ country_code: "GB", registration_number: "07495895" })
|
39
|
+
=> {
|
40
|
+
name: "GOCARDLESS LTD",
|
41
|
+
type: "Ltd",
|
42
|
+
status: "Active",
|
43
|
+
registration_number: "07495895",
|
44
|
+
address: {
|
45
|
+
simple_value: "338-346, GOSWELL, LONDON",
|
46
|
+
postal_code: "EC1V7LQ"
|
47
|
+
},
|
48
|
+
available_report_types: { available_report_type: "Full" },
|
49
|
+
available_languages: { available_language: "EN" },
|
50
|
+
@date_of_latest_accounts: "2014-01-31T00:00:00Z",
|
51
|
+
@online_reports: "true",
|
52
|
+
@monitoring: "false",
|
53
|
+
@country: "GB",
|
54
|
+
@id: "GB003/0/07495895"
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
In Germany you can also perform a name search. For this you need to provide a country code
|
59
|
+
and a company name, and can optionally provide a postal code or city to filter the results
|
60
|
+
further:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
client.find_company({ country_code: "DE", company_name: "zalando", postal_code: "10243" })
|
64
|
+
=> [
|
65
|
+
{
|
66
|
+
"name": "Zalando Logistics Süd SE & Co. KG",
|
67
|
+
"type": "NonLtd",
|
68
|
+
"status": "Active",
|
69
|
+
"address": {
|
70
|
+
"street": "Tamara-Danz-Str. 1",
|
71
|
+
"city": "Berlin",
|
72
|
+
"postal_code": "10243"
|
73
|
+
},
|
74
|
+
"available_report_types": {
|
75
|
+
"available_report_type": [
|
76
|
+
"Full",
|
77
|
+
"Basic"
|
78
|
+
]
|
79
|
+
},
|
80
|
+
"available_languages": {
|
81
|
+
"available_language": [
|
82
|
+
"EN",
|
83
|
+
"DE"
|
84
|
+
]
|
85
|
+
},
|
86
|
+
"@online_reports": "true",
|
87
|
+
"@monitoring": "true",
|
88
|
+
"@country": "DE",
|
89
|
+
"@id": "DE001/1/DE20316785",
|
90
|
+
"@safe_number": "DE20316785"
|
91
|
+
},
|
92
|
+
{
|
93
|
+
"name": "Zalando Outlet Store Berlin",
|
94
|
+
"type": "NonLtd",
|
95
|
+
"status": "Active",
|
96
|
+
"address": {
|
97
|
+
"street": "Köpenicker Str. 20",
|
98
|
+
"city": "Berlin",
|
99
|
+
"postal_code": "10997"
|
100
|
+
},
|
101
|
+
"available_report_types": {
|
102
|
+
"available_report_type": [
|
103
|
+
"Full",
|
104
|
+
"Basic"
|
105
|
+
]
|
106
|
+
},
|
107
|
+
"available_languages": {
|
108
|
+
"available_language": [
|
109
|
+
"EN",
|
110
|
+
"DE"
|
111
|
+
]
|
112
|
+
},
|
113
|
+
"@online_reports": "true",
|
114
|
+
"@monitoring": "true",
|
115
|
+
"@country": "DE",
|
116
|
+
"@id": "DE001/1/DE16031795",
|
117
|
+
"@safe_number": "DE16031795"
|
118
|
+
},
|
119
|
+
...
|
120
|
+
]
|
121
|
+
```
|
122
|
+
|
123
|
+
In some countries you can also perform a VAT number search. For this, you need to provide
|
124
|
+
a country code and a VAT number:
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
client.find_company({ country_code: "US", vat_number: "201665019" })
|
128
|
+
=> [
|
129
|
+
{
|
130
|
+
"name": "FACEBOOK, INCORPORATED",
|
131
|
+
"officeType": "HeadOffice",
|
132
|
+
"status": "Active",
|
133
|
+
"registration_number": "0883875",
|
134
|
+
"vat_number": "201665019",
|
135
|
+
"address": {
|
136
|
+
"simple_value": "1601 WILLOW ROAD , MENLO PARK, CA, 94025",
|
137
|
+
"street": "1601 WILLOW ROAD ",
|
138
|
+
"city": "MENLO PARK",
|
139
|
+
"postal_code": "94025",
|
140
|
+
"province": "CA"
|
141
|
+
},
|
142
|
+
"phone_number": "6505434800",
|
143
|
+
"available_report_types": {
|
144
|
+
"available_report_type": "Full"
|
145
|
+
},
|
146
|
+
"available_languages": {
|
147
|
+
"available_language": "EN"
|
148
|
+
},
|
149
|
+
"@online_reports": "true",
|
150
|
+
"@monitoring": "false",
|
151
|
+
"@country": "US",
|
152
|
+
"@id": "US023/X/US22964593",
|
153
|
+
"@safe_number": "US22964593"
|
154
|
+
},
|
155
|
+
...
|
156
|
+
]
|
157
|
+
```
|
158
|
+
|
159
|
+
### Company Report
|
160
|
+
|
161
|
+
To download all the information available in an online company report, you will
|
162
|
+
need the company's Creditsafe identifier (obtainable using
|
163
|
+
[find_company](#find_company) above):
|
164
|
+
|
165
|
+
```ruby
|
166
|
+
client.company_report("GB003/0/07495895")
|
167
|
+
=> {
|
168
|
+
...
|
169
|
+
}
|
170
|
+
```
|
171
|
+
|
172
|
+
|
173
|
+
---
|
174
|
+
|
175
|
+
GoCardless ♥ open source. If you do too, come [join us](https://gocardless.com/jobs#software-engineer).
|
data/creditsafe.gemspec
CHANGED
@@ -1,35 +1,35 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
lib = File.expand_path("lib", __dir__)
|
4
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
-
require "creditsafe/version"
|
6
|
-
|
7
|
-
Gem::Specification.new do |spec|
|
8
|
-
spec.name = "creditsafe"
|
9
|
-
spec.version = Creditsafe::VERSION
|
10
|
-
spec.authors = ["GoCardless Engineering"]
|
11
|
-
spec.email = ["engineering@gocardless.com"]
|
12
|
-
spec.summary = "Ruby client for the Creditsafe SOAP API"
|
13
|
-
spec.
|
14
|
-
spec.
|
15
|
-
|
16
|
-
|
17
|
-
spec.
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = ["lib"]
|
20
|
-
|
21
|
-
spec.add_runtime_dependency "activesupport"
|
22
|
-
spec.add_runtime_dependency "excon", "~> 0.
|
23
|
-
spec.add_runtime_dependency "savon", "~> 2.
|
24
|
-
|
25
|
-
spec.add_development_dependency "
|
26
|
-
spec.add_development_dependency "
|
27
|
-
spec.add_development_dependency "
|
28
|
-
spec.add_development_dependency "
|
29
|
-
spec.add_development_dependency "rspec", "~> 3
|
30
|
-
spec.add_development_dependency "
|
31
|
-
spec.add_development_dependency "
|
32
|
-
spec.add_development_dependency "rubocop", "~>
|
33
|
-
spec.add_development_dependency "timecop", "~> 0.
|
34
|
-
spec.add_development_dependency "webmock", "~> 3.
|
35
|
-
end
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
|
+
require "creditsafe/version"
|
6
|
+
|
7
|
+
Gem::Specification.new do |spec|
|
8
|
+
spec.name = "creditsafe"
|
9
|
+
spec.version = Creditsafe::VERSION
|
10
|
+
spec.authors = ["GoCardless Engineering"]
|
11
|
+
spec.email = ["engineering@gocardless.com"]
|
12
|
+
spec.summary = "Ruby client for the Creditsafe SOAP API"
|
13
|
+
spec.homepage = "https://github.com/gocardless/creditsafe-ruby"
|
14
|
+
spec.license = "MIT"
|
15
|
+
spec.required_ruby_version = ">= 2.7.0"
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency "activesupport"
|
22
|
+
spec.add_runtime_dependency "excon", "~> 0.85"
|
23
|
+
spec.add_runtime_dependency "savon", "~> 2.11"
|
24
|
+
|
25
|
+
spec.add_development_dependency "compare-xml", "~> 0.66"
|
26
|
+
spec.add_development_dependency "gc_ruboconfig", "~> 2.28"
|
27
|
+
spec.add_development_dependency "pry", "~> 0.14"
|
28
|
+
spec.add_development_dependency "rspec", "~> 3.8"
|
29
|
+
spec.add_development_dependency "rspec-its", "~> 1.3"
|
30
|
+
spec.add_development_dependency "rspec_junit_formatter", "~> 0.4"
|
31
|
+
spec.add_development_dependency "rubocop", "~> 1.20"
|
32
|
+
spec.add_development_dependency "rubocop-rspec", "~> 2.4"
|
33
|
+
spec.add_development_dependency "timecop", "~> 0.9"
|
34
|
+
spec.add_development_dependency "webmock", "~> 3.14"
|
35
|
+
end
|