creditsafe 0.6.0 → 0.7.0
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.
- 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: [](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: [](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
|