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.
Files changed (40) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +66 -17
  3. data/.github/dependabot.yml +17 -0
  4. data/.gitignore +4 -2
  5. data/.rspec +1 -1
  6. data/.rubocop.yml +18 -11
  7. data/.ruby-version +1 -1
  8. data/CHANGELOG.md +64 -45
  9. data/Gemfile +5 -5
  10. data/LICENSE.txt +22 -22
  11. data/README.md +175 -175
  12. data/creditsafe.gemspec +35 -35
  13. data/data/creditsafe-live.xml +342 -342
  14. data/data/creditsafe-test.xml +342 -342
  15. data/lib/creditsafe/client.rb +165 -158
  16. data/lib/creditsafe/{constants.rb → country.rb} +49 -49
  17. data/lib/creditsafe/errors.rb +23 -16
  18. data/lib/creditsafe/match_type.rb +115 -115
  19. data/lib/creditsafe/messages.rb +98 -97
  20. data/lib/creditsafe/namespace.rb +20 -20
  21. data/lib/creditsafe/request/company_report.rb +42 -42
  22. data/lib/creditsafe/request/find_company.rb +118 -120
  23. data/lib/creditsafe/version.rb +5 -5
  24. data/lib/creditsafe.rb +4 -4
  25. data/spec/creditsafe/client_spec.rb +431 -423
  26. data/spec/creditsafe/messages_spec.rb +76 -76
  27. data/spec/fixtures/company-report-not-found.xml +13 -13
  28. data/spec/fixtures/company-report-request.xml +1 -1
  29. data/spec/fixtures/company-report-successful.xml +582 -582
  30. data/spec/fixtures/error-fault.xml +8 -8
  31. data/spec/fixtures/error-invalid-credentials.html +31 -31
  32. data/spec/fixtures/find-companies-error-no-text.xml +11 -11
  33. data/spec/fixtures/find-companies-error.xml +11 -11
  34. data/spec/fixtures/find-companies-none-found.xml +13 -13
  35. data/spec/fixtures/find-companies-request.xml +1 -1
  36. data/spec/fixtures/find-companies-successful-multi.xml +493 -493
  37. data/spec/fixtures/find-companies-successful.xml +29 -29
  38. data/spec/spec_helper.rb +14 -14
  39. metadata +46 -46
  40. 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.description = "Ruby client for the Creditsafe SOAP API"
14
- spec.homepage = "https://github.com/gocardless/creditsafe-ruby"
15
-
16
- spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_runtime_dependency "activesupport", ">= 4.2.0"
22
- spec.add_runtime_dependency "excon", "~> 0.45"
23
- spec.add_runtime_dependency "savon", "~> 2.8"
24
-
25
- spec.add_development_dependency "bundler", "~> 1.3"
26
- spec.add_development_dependency "compare-xml", "~> 0.5"
27
- spec.add_development_dependency "gc_ruboconfig", "~> 2.3"
28
- spec.add_development_dependency "pry", "~> 0.11"
29
- spec.add_development_dependency "rspec", "~> 3.1"
30
- spec.add_development_dependency "rspec-its", "~> 1.2"
31
- spec.add_development_dependency "rspec_junit_formatter", "~> 0.3"
32
- spec.add_development_dependency "rubocop", "~> 0.52"
33
- spec.add_development_dependency "timecop", "~> 0.8"
34
- spec.add_development_dependency "webmock", "~> 3.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