creditsafe_connect 0.1.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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +3 -0
- data/.rubocop.yml +69 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +96 -0
- data/README.md +57 -0
- data/Rakefile +4 -0
- data/bin/console +13 -0
- data/bin/setup +8 -0
- data/creditsafe_connect.gemspec +38 -0
- data/lib/creditsafe.rb +23 -0
- data/lib/creditsafe/authenticate.rb +41 -0
- data/lib/creditsafe/base_model.rb +104 -0
- data/lib/creditsafe/camelizer_lower.rb +14 -0
- data/lib/creditsafe/client.rb +57 -0
- data/lib/creditsafe/configuration.rb +15 -0
- data/lib/creditsafe/errors.rb +9 -0
- data/lib/creditsafe/faraday_auth.rb +51 -0
- data/lib/creditsafe/models/activity.rb +11 -0
- data/lib/creditsafe/models/activity_classification.rb +18 -0
- data/lib/creditsafe/models/address.rb +16 -0
- data/lib/creditsafe/models/basic_information.rb +26 -0
- data/lib/creditsafe/models/company.rb +21 -0
- data/lib/creditsafe/models/company_identification.rb +21 -0
- data/lib/creditsafe/models/company_status.rb +11 -0
- data/lib/creditsafe/models/company_summary.rb +27 -0
- data/lib/creditsafe/models/contact_information.rb +21 -0
- data/lib/creditsafe/models/credit_rating.rb +21 -0
- data/lib/creditsafe/models/credit_report.rb +30 -0
- data/lib/creditsafe/models/credit_score.rb +22 -0
- data/lib/creditsafe/models/currency_value.rb +11 -0
- data/lib/creditsafe/models/legal_form.rb +11 -0
- data/lib/creditsafe/models/main_activity.rb +11 -0
- data/lib/creditsafe/models/provider_value.rb +11 -0
- data/lib/creditsafe/models/report.rb +32 -0
- data/lib/creditsafe/models/search.rb +41 -0
- data/lib/creditsafe/version.rb +5 -0
- data/lib/creditsafe_connect.rb +3 -0
- metadata +238 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 30a7000d4f2f571913e8a2336515469991d7070f197144f057bd90d61e423006
|
4
|
+
data.tar.gz: d7cafce50a0daf972686fc63a7da3f63abe5ba1330d39291c9749f0564638ae1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cc424d4b9e666162cbb192ab2f1a5e52484ab1586731f4ce57e87a28862bc878565b88436df43eaf4dec70623948521f60bcde06ec2e2cbe413fa5ab8ed4a5bb
|
7
|
+
data.tar.gz: 355eb6e3701ae39e548d3c6d97c521f4ce932a0ca893e1014b17956e39dcc7f6cc976c07d804225f5ceb24fd910d7ba29b54a12061e63597e3456fb2cc0474bd
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
TargetRubyVersion: 2.5.1
|
5
|
+
|
6
|
+
# Don't force top level comments in every class
|
7
|
+
Style/Documentation:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
# A good line length is 100 chars
|
11
|
+
Layout/LineLength:
|
12
|
+
Max: 100
|
13
|
+
AllowURI: true
|
14
|
+
|
15
|
+
Metrics/BlockLength:
|
16
|
+
Enabled: false
|
17
|
+
|
18
|
+
Metrics/ClassLength:
|
19
|
+
Max: 300
|
20
|
+
|
21
|
+
Metrics/MethodLength:
|
22
|
+
Max: 20
|
23
|
+
|
24
|
+
Metrics/AbcSize:
|
25
|
+
Max: 30
|
26
|
+
|
27
|
+
RSpec/ExampleLength:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
RSpec/MultipleExpectations:
|
31
|
+
Max: 10
|
32
|
+
|
33
|
+
RSpec/RepeatedExample:
|
34
|
+
Exclude:
|
35
|
+
- 'spec/policies/**/*'
|
36
|
+
|
37
|
+
RSpec/RepeatedDescription:
|
38
|
+
Exclude:
|
39
|
+
- 'spec/policies/**/*'
|
40
|
+
|
41
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
42
|
+
Enabled: true
|
43
|
+
Layout/SpaceAroundMethodCallOperator:
|
44
|
+
Enabled: true
|
45
|
+
Lint/DeprecatedOpenSSLConstant:
|
46
|
+
Enabled: true
|
47
|
+
Lint/MixedRegexpCaptureTypes:
|
48
|
+
Enabled: true
|
49
|
+
Lint/RaiseException:
|
50
|
+
Enabled: true
|
51
|
+
Lint/StructNewOverride:
|
52
|
+
Enabled: true
|
53
|
+
Style/ExponentialNotation:
|
54
|
+
Enabled: true
|
55
|
+
Style/HashEachMethods:
|
56
|
+
Enabled: true
|
57
|
+
Style/HashTransformKeys:
|
58
|
+
Enabled: true
|
59
|
+
Style/HashTransformValues:
|
60
|
+
Enabled: true
|
61
|
+
Style/RedundantFetchBlock:
|
62
|
+
Enabled: true
|
63
|
+
Style/RedundantRegexpCharacterClass:
|
64
|
+
Enabled: true
|
65
|
+
Style/RedundantRegexpEscape:
|
66
|
+
Enabled: true
|
67
|
+
Style/SlicingWithRange:
|
68
|
+
Enabled: true
|
69
|
+
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
finpoint-app
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.1
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
creditsafe_connect (0.1.0)
|
5
|
+
faraday (~> 0.15)
|
6
|
+
faraday_middleware (~> 0.12)
|
7
|
+
faraday_middleware-multi_json (~> 0.0.6)
|
8
|
+
multi_json (~> 1.13)
|
9
|
+
rainbow (~> 3.0)
|
10
|
+
|
11
|
+
GEM
|
12
|
+
remote: https://rubygems.org/
|
13
|
+
specs:
|
14
|
+
addressable (2.7.0)
|
15
|
+
public_suffix (>= 2.0.2, < 5.0)
|
16
|
+
ast (2.4.1)
|
17
|
+
byebug (11.1.3)
|
18
|
+
coderay (1.1.3)
|
19
|
+
crack (0.4.3)
|
20
|
+
safe_yaml (~> 1.0.0)
|
21
|
+
diff-lcs (1.4.4)
|
22
|
+
faraday (0.17.3)
|
23
|
+
multipart-post (>= 1.2, < 3)
|
24
|
+
faraday_middleware (0.14.0)
|
25
|
+
faraday (>= 0.7.4, < 1.0)
|
26
|
+
faraday_middleware-multi_json (0.0.6)
|
27
|
+
faraday_middleware
|
28
|
+
multi_json
|
29
|
+
hashdiff (1.0.1)
|
30
|
+
method_source (1.0.0)
|
31
|
+
multi_json (1.15.0)
|
32
|
+
multipart-post (2.1.1)
|
33
|
+
parallel (1.19.2)
|
34
|
+
parser (2.7.1.4)
|
35
|
+
ast (~> 2.4.1)
|
36
|
+
pry (0.13.1)
|
37
|
+
coderay (~> 1.1)
|
38
|
+
method_source (~> 1.0)
|
39
|
+
pry-byebug (3.9.0)
|
40
|
+
byebug (~> 11.0)
|
41
|
+
pry (~> 0.13.0)
|
42
|
+
public_suffix (4.0.5)
|
43
|
+
rainbow (3.0.0)
|
44
|
+
rake (12.3.3)
|
45
|
+
regexp_parser (1.7.1)
|
46
|
+
rexml (3.2.4)
|
47
|
+
rspec (3.9.0)
|
48
|
+
rspec-core (~> 3.9.0)
|
49
|
+
rspec-expectations (~> 3.9.0)
|
50
|
+
rspec-mocks (~> 3.9.0)
|
51
|
+
rspec-core (3.9.2)
|
52
|
+
rspec-support (~> 3.9.3)
|
53
|
+
rspec-expectations (3.9.2)
|
54
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
55
|
+
rspec-support (~> 3.9.0)
|
56
|
+
rspec-mocks (3.9.1)
|
57
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
58
|
+
rspec-support (~> 3.9.0)
|
59
|
+
rspec-support (3.9.3)
|
60
|
+
rubocop (0.86.0)
|
61
|
+
parallel (~> 1.10)
|
62
|
+
parser (>= 2.7.0.1)
|
63
|
+
rainbow (>= 2.2.2, < 4.0)
|
64
|
+
regexp_parser (>= 1.7)
|
65
|
+
rexml
|
66
|
+
rubocop-ast (>= 0.0.3, < 1.0)
|
67
|
+
ruby-progressbar (~> 1.7)
|
68
|
+
unicode-display_width (>= 1.4.0, < 2.0)
|
69
|
+
rubocop-ast (0.1.0)
|
70
|
+
parser (>= 2.7.0.1)
|
71
|
+
rubocop-rspec (1.41.0)
|
72
|
+
rubocop (>= 0.68.1)
|
73
|
+
ruby-progressbar (1.10.1)
|
74
|
+
safe_yaml (1.0.5)
|
75
|
+
unicode-display_width (1.7.0)
|
76
|
+
vcr (4.0.0)
|
77
|
+
webmock (3.7.6)
|
78
|
+
addressable (>= 2.3.6)
|
79
|
+
crack (>= 0.3.2)
|
80
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
81
|
+
|
82
|
+
PLATFORMS
|
83
|
+
ruby
|
84
|
+
|
85
|
+
DEPENDENCIES
|
86
|
+
creditsafe_connect!
|
87
|
+
pry-byebug (~> 3.6)
|
88
|
+
rake (~> 12.0)
|
89
|
+
rspec (~> 3.0)
|
90
|
+
rubocop (~> 0.58)
|
91
|
+
rubocop-rspec (~> 1.27)
|
92
|
+
vcr (~> 4.0.0)
|
93
|
+
webmock (~> 3.7.2)
|
94
|
+
|
95
|
+
BUNDLED WITH
|
96
|
+
2.1.4
|
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# Creditsafe Connect
|
2
|
+
|
3
|
+
Creditsafe Connect API Wrapper
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'creditsafe_connect'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle install
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install creditsafe_connect
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
Configure credentials using `Creditsafe.configure` block
|
24
|
+
|
25
|
+
```
|
26
|
+
Creditsafe.configure do |config|
|
27
|
+
config.debug = ENV['CREDITSAFE_DEBUG'].present?
|
28
|
+
config.username = ENV['CREDITSAFE_USERNAME']
|
29
|
+
config.password = ENV['CREDITSAFE_PASSWORD']
|
30
|
+
end
|
31
|
+
```
|
32
|
+
|
33
|
+
Search for companies:
|
34
|
+
```
|
35
|
+
# by company number
|
36
|
+
Creditsafe::Models::Search.find(NUMBER)
|
37
|
+
|
38
|
+
# by any other criteria
|
39
|
+
# e.g. name
|
40
|
+
Creditsafe::Models::Search.where(name: COMPANY_NAME, pageSize: 25)
|
41
|
+
```
|
42
|
+
|
43
|
+
Report for company, by company ID:
|
44
|
+
```
|
45
|
+
Creditsafe::Models::CreditReport.for(COMPANY_ID)
|
46
|
+
```
|
47
|
+
|
48
|
+
## Development
|
49
|
+
|
50
|
+
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
51
|
+
|
52
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
53
|
+
|
54
|
+
## Contributing
|
55
|
+
|
56
|
+
Bug reports and pull requests are welcome on GitLab at https://gitlab.com/finpoint/creditsafe_connect.
|
57
|
+
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'bundler/setup'
|
5
|
+
require 'creditsafe'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
9
|
+
# with your gem easier. You can also use a different console, if you like.
|
10
|
+
|
11
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
12
|
+
require 'pry'
|
13
|
+
Pry.start
|
data/bin/setup
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/creditsafe/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'creditsafe_connect'
|
7
|
+
spec.version = Creditsafe::VERSION
|
8
|
+
spec.authors = ['Nenad Petronijevic']
|
9
|
+
spec.email = ['nenad@finpoint.co.uk']
|
10
|
+
|
11
|
+
spec.summary = 'Creditsafe Connect API Wrapper'
|
12
|
+
spec.description = spec.summary
|
13
|
+
spec.homepage = 'https://gitlab.com/finpoint/creditsafe_connect'
|
14
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
15
|
+
spec.license = 'MIT'
|
16
|
+
|
17
|
+
# Specify which files should be added to the gem when it is released.
|
18
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
20
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
+
end
|
22
|
+
spec.bindir = 'exe'
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ['lib']
|
25
|
+
|
26
|
+
spec.add_dependency 'faraday', '~> 0.15'
|
27
|
+
spec.add_dependency 'faraday_middleware', '~> 0.12'
|
28
|
+
spec.add_dependency 'faraday_middleware-multi_json', '~> 0.0.6'
|
29
|
+
spec.add_dependency 'multi_json', '~> 1.13'
|
30
|
+
spec.add_dependency 'rainbow', '~> 3.0'
|
31
|
+
|
32
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.6'
|
33
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 0.58'
|
35
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.27'
|
36
|
+
spec.add_development_dependency 'vcr', '~> 4.0.0'
|
37
|
+
spec.add_development_dependency 'webmock', '~> 3.7.2'
|
38
|
+
end
|
data/lib/creditsafe.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/version'
|
4
|
+
require 'creditsafe/configuration'
|
5
|
+
require 'creditsafe/client'
|
6
|
+
require 'creditsafe/models/search'
|
7
|
+
require 'creditsafe/models/credit_report'
|
8
|
+
|
9
|
+
module Creditsafe
|
10
|
+
module_function
|
11
|
+
|
12
|
+
def configure
|
13
|
+
yield(configuration)
|
14
|
+
end
|
15
|
+
|
16
|
+
def client
|
17
|
+
@client ||= Client.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def configuration
|
21
|
+
@configuration ||= Configuration.new
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/client'
|
4
|
+
require 'creditsafe/errors'
|
5
|
+
require 'creditsafe/version'
|
6
|
+
|
7
|
+
module Creditsafe
|
8
|
+
class Authenticate
|
9
|
+
def call(username, password)
|
10
|
+
response = post('authenticate', username: username, password: password)
|
11
|
+
|
12
|
+
if response.success?
|
13
|
+
response.body[:token]
|
14
|
+
elsif response.status == 401
|
15
|
+
raise UnauthorizedError, response.body
|
16
|
+
else
|
17
|
+
raise GenericError, response.body
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def post(path, params = {})
|
24
|
+
connection.post(path, MultiJson.dump(params))
|
25
|
+
end
|
26
|
+
|
27
|
+
def connection
|
28
|
+
api_url = Client.new.api_url
|
29
|
+
|
30
|
+
@connection ||= Faraday.new(url: api_url) do |conn|
|
31
|
+
conn.headers.merge!(
|
32
|
+
content_type: 'application/json',
|
33
|
+
user_agent: "finpoint/#{Creditsafe::VERSION}"
|
34
|
+
)
|
35
|
+
conn.response :multi_json, symbolize_keys: true
|
36
|
+
conn.response :logger if Creditsafe.configuration.debug
|
37
|
+
conn.adapter Faraday.default_adapter
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/errors'
|
4
|
+
require 'creditsafe/camelizer_lower'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
class BaseModel
|
8
|
+
class << self
|
9
|
+
def get(path, params = {})
|
10
|
+
result = Creditsafe.client.get(path.strip, params)
|
11
|
+
|
12
|
+
raise APIKeyError, result.body[:error] if result.status == 401
|
13
|
+
|
14
|
+
result
|
15
|
+
end
|
16
|
+
|
17
|
+
def post(path, params = {})
|
18
|
+
result = Creditsafe.client.post(path.strip, params)
|
19
|
+
|
20
|
+
raise APIKeyError, result.body[:error] if result.status == 401
|
21
|
+
|
22
|
+
result
|
23
|
+
end
|
24
|
+
|
25
|
+
def attributes(*attributes)
|
26
|
+
@attributes ||= []
|
27
|
+
|
28
|
+
return @attributes unless attributes
|
29
|
+
|
30
|
+
attr_accessor(*attributes)
|
31
|
+
|
32
|
+
@attributes += attributes
|
33
|
+
end
|
34
|
+
|
35
|
+
def attribute_aliases(aliases = nil)
|
36
|
+
@attribute_aliases ||= {}
|
37
|
+
|
38
|
+
return @attribute_aliases unless aliases
|
39
|
+
|
40
|
+
@attribute_aliases.merge!(aliases)
|
41
|
+
end
|
42
|
+
|
43
|
+
def format_url(url, params)
|
44
|
+
formatted = url.dup.strip
|
45
|
+
|
46
|
+
params.each { |key, value| formatted.sub!(":#{key}", value) }
|
47
|
+
|
48
|
+
formatted
|
49
|
+
end
|
50
|
+
|
51
|
+
def successful_response?(result)
|
52
|
+
result.status < 400
|
53
|
+
end
|
54
|
+
|
55
|
+
def key_transformer
|
56
|
+
CamelizerLower
|
57
|
+
end
|
58
|
+
|
59
|
+
# Sets all the instance variables by reading the JSON from Creditsafe and converting the keys from
|
60
|
+
# camelCase to snake_case, as it's the standard in Ruby.
|
61
|
+
def build(json: {}, key_transformer: self.key_transformer)
|
62
|
+
new.tap do |record|
|
63
|
+
attributes.each do |attr|
|
64
|
+
key = attribute_aliases.key?(attr) ? attribute_aliases[attr] : attr
|
65
|
+
record.public_send("#{attr}=", json[key_transformer.transform(key)])
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def initialize(attributes = {})
|
72
|
+
attributes.each do |attr, value|
|
73
|
+
public_send("#{attr}=", value)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def get(path, params = {})
|
78
|
+
self.class.get(path, params)
|
79
|
+
end
|
80
|
+
|
81
|
+
def post(path, params = {})
|
82
|
+
self.class.post(path, params)
|
83
|
+
end
|
84
|
+
|
85
|
+
def format_url(url, params)
|
86
|
+
self.class.format_url(url, params)
|
87
|
+
end
|
88
|
+
|
89
|
+
def as_json
|
90
|
+
self.class.attributes.each_with_object({}) do |attr, hash|
|
91
|
+
value = public_send(attr)
|
92
|
+
|
93
|
+
value = value.as_json if value.respond_to?(:as_json)
|
94
|
+
if value.is_a?(Array)
|
95
|
+
value = value.map { |v| v.respond_to?(:as_json) ? v.as_json : v }
|
96
|
+
end
|
97
|
+
|
98
|
+
key = self.class.key_transformer.transform(attr)
|
99
|
+
|
100
|
+
hash[key] = value
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Creditsafe
|
4
|
+
class CamelizerLower
|
5
|
+
# Converts this_is_my_string to thisIsMyString and returns it as a symbol.
|
6
|
+
def self.transform(underscore_string)
|
7
|
+
parts = underscore_string.to_s.split('_')
|
8
|
+
|
9
|
+
rest = parts[1..-1].map(&:capitalize)
|
10
|
+
|
11
|
+
rest.unshift(parts[0]).join.to_sym
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'faraday'
|
4
|
+
require 'faraday_middleware/multi_json'
|
5
|
+
require 'creditsafe/configuration'
|
6
|
+
require 'creditsafe/faraday_auth'
|
7
|
+
|
8
|
+
module Creditsafe
|
9
|
+
class Client
|
10
|
+
BASE_URLS = {
|
11
|
+
production: 'https://connect.creditsafe.com/v1/',
|
12
|
+
sandbox: 'https://connect.sandbox.creditsafe.com/v1/'
|
13
|
+
}.freeze
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
Faraday::Request.register_middleware creditsafe_auth: -> { Creditsafe::FaradayAuth }
|
17
|
+
end
|
18
|
+
|
19
|
+
def get(path, params = {})
|
20
|
+
connection.get(path, params).tap do |response|
|
21
|
+
handle_response(response)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def post(path, params = {})
|
26
|
+
connection.post(path, MultiJson.dump(params)).tap do |response|
|
27
|
+
handle_response(response)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def connection
|
32
|
+
@connection ||= Faraday.new(url: api_url) do |conn|
|
33
|
+
conn.request :creditsafe_auth, Creditsafe.configuration.username, Creditsafe.configuration.password
|
34
|
+
conn.response :multi_json, symbolize_keys: true
|
35
|
+
conn.response :logger if Creditsafe.configuration.debug
|
36
|
+
conn.adapter Faraday.default_adapter
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def api_url
|
41
|
+
BASE_URLS.dig(Creditsafe.configuration.environment.to_sym)
|
42
|
+
end
|
43
|
+
|
44
|
+
def handle_response(response)
|
45
|
+
return if response.success?
|
46
|
+
|
47
|
+
case response.status
|
48
|
+
when 401
|
49
|
+
raise UnauthorizedError, response.body
|
50
|
+
when 400
|
51
|
+
raise InvalidRequestError, response.body
|
52
|
+
else
|
53
|
+
raise GenericError, response.body
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Creditsafe
|
4
|
+
class Configuration
|
5
|
+
attr_accessor :username, :password, :environment, :debug, :countries
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@username = ''
|
9
|
+
@password = ''
|
10
|
+
@environment = :sandbox # can be either :sandbox or :production
|
11
|
+
@debug = false
|
12
|
+
@countries = %w[GB]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/authenticate'
|
4
|
+
require 'creditsafe/version'
|
5
|
+
require 'creditsafe/errors'
|
6
|
+
|
7
|
+
module Creditsafe
|
8
|
+
class FaradayAuth < Faraday::Middleware
|
9
|
+
def initialize(app, username, password, options = {})
|
10
|
+
super(app)
|
11
|
+
@username = username
|
12
|
+
@password = password
|
13
|
+
@token = nil
|
14
|
+
@options = options
|
15
|
+
end
|
16
|
+
|
17
|
+
def call(env)
|
18
|
+
retry_count = 0
|
19
|
+
|
20
|
+
authenticate! unless @token
|
21
|
+
|
22
|
+
begin
|
23
|
+
env[:request_headers]['Authorization'] = @token
|
24
|
+
env[:request_headers]['Content-Type'] = 'application/json'
|
25
|
+
env[:request_headers]['User-Agent'] = "finpoint/#{Creditsafe::VERSION}"
|
26
|
+
|
27
|
+
@app.call(env).tap do |resp|
|
28
|
+
if resp.status == 401
|
29
|
+
raise Creditsafe::UnauthorizedError, resp.body
|
30
|
+
end
|
31
|
+
end
|
32
|
+
rescue Creditsafe::UnauthorizedError => e
|
33
|
+
retry_count += 1
|
34
|
+
|
35
|
+
if retry_count <= 1
|
36
|
+
authenticate!
|
37
|
+
|
38
|
+
retry
|
39
|
+
else
|
40
|
+
raise e
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def authenticate!
|
48
|
+
@token = Authenticate.new.call(@username, @password)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/activity'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
module Models
|
8
|
+
class ActivityClassification < BaseModel
|
9
|
+
attributes :classification, :activities
|
10
|
+
|
11
|
+
def self.build(json:)
|
12
|
+
super.tap do |record|
|
13
|
+
record.activities = json.fetch(:activities, []).map { |act| Activity.build(json: act) }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
|
5
|
+
module Creditsafe
|
6
|
+
module Models
|
7
|
+
class Address < BaseModel
|
8
|
+
attributes :type, :simple_value, :street, :house_number,
|
9
|
+
:city, :postal_code, :province, :telephone, :direct_marketing_opt_out
|
10
|
+
|
11
|
+
def line_1
|
12
|
+
[street, house_number].compact.join(' ')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/legal_form'
|
5
|
+
require 'creditsafe/models/company_status'
|
6
|
+
require 'creditsafe/models/main_activity'
|
7
|
+
require 'creditsafe/models/address'
|
8
|
+
|
9
|
+
module Creditsafe
|
10
|
+
module Models
|
11
|
+
class BasicInformation < BaseModel
|
12
|
+
attributes :business_name, :registered_company_name, :company_registration_number,
|
13
|
+
:country, :vat_registration_number, :company_registration_date, :legal_form,
|
14
|
+
:company_status, :principal_activity, :contact_address
|
15
|
+
|
16
|
+
def self.build(json:)
|
17
|
+
super.tap do |record|
|
18
|
+
record.legal_form = LegalForm.build(json: json.fetch(:legalForm, {}))
|
19
|
+
record.company_status = CompanyStatus.build(json: json.fetch(:companyStatus, {}))
|
20
|
+
record.principal_activity = MainActivity.build(json: json.fetch(:principalActivity, {}))
|
21
|
+
record.contact_address = Address.build(json: json.fetch(:contactAddress, {}))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/address'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
module Models
|
8
|
+
class Company < BaseModel
|
9
|
+
attributes :id, :address, :country, :reg_no, :vat_no, :safe_no,
|
10
|
+
:name, :status, :type,
|
11
|
+
:date_of_latest_accounts, :date_of_latest_change,
|
12
|
+
:activity_code, :status_description
|
13
|
+
|
14
|
+
def self.build(json:)
|
15
|
+
super.tap do |record|
|
16
|
+
record.address = Address.build(json: json.fetch(:address, {}))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/basic_information'
|
5
|
+
require 'creditsafe/models/activity_classification'
|
6
|
+
|
7
|
+
module Creditsafe
|
8
|
+
module Models
|
9
|
+
class CompanyIdentification < BaseModel
|
10
|
+
attributes :basic_information, :activity_classifications
|
11
|
+
|
12
|
+
def self.build(json:)
|
13
|
+
super.tap do |record|
|
14
|
+
record.basic_information = BasicInformation.build(json: json.fetch(:basicInformation, {}))
|
15
|
+
record.activity_classifications = json.fetch(:activityClassifications, [])
|
16
|
+
.map { |ac| ActivityClassification.build(json: ac) }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/main_activity'
|
5
|
+
require 'creditsafe/models/company_status'
|
6
|
+
require 'creditsafe/models/currency_value'
|
7
|
+
require 'creditsafe/models/credit_rating'
|
8
|
+
|
9
|
+
module Creditsafe
|
10
|
+
module Models
|
11
|
+
class CompanySummary < BaseModel
|
12
|
+
attributes :business_name, :country, :company_number, :company_registration_number,
|
13
|
+
:main_activity, :company_status, :latest_shareholders_equity_figure, :credit_rating
|
14
|
+
|
15
|
+
def self.build(json:)
|
16
|
+
super.tap do |record|
|
17
|
+
record.main_activity = MainActivity.build(json: json.fetch(:mainActivity, {}))
|
18
|
+
record.company_status = CompanyStatus.build(json: json.fetch(:companyStatus, {}))
|
19
|
+
record.latest_shareholders_equity_figure = CurrencyValue.build(
|
20
|
+
json: json.fetch(:latestShareholdersEquityFigure, {})
|
21
|
+
)
|
22
|
+
record.credit_rating = CreditRating.build(json: json.fetch(:creditRating, {}))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/address'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
module Models
|
8
|
+
class ContactInformation < BaseModel
|
9
|
+
attributes :main_address, :other_addresses
|
10
|
+
|
11
|
+
def self.build(json:)
|
12
|
+
super.tap do |record|
|
13
|
+
record.main_address = Address.build(json: json.fetch(:mainAddress, {}))
|
14
|
+
record.other_addresses = json.fetch(:otherAddresses, []).map do |addr|
|
15
|
+
Address.build(json: addr)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/currency_value'
|
5
|
+
require 'creditsafe/models/provider_value'
|
6
|
+
|
7
|
+
module Creditsafe
|
8
|
+
module Models
|
9
|
+
class CreditRating < BaseModel
|
10
|
+
attributes :common_value, :common_description, :credit_limit,
|
11
|
+
:provider_value, :provider_description
|
12
|
+
|
13
|
+
def self.build(json:)
|
14
|
+
super.tap do |record|
|
15
|
+
record.credit_limit = CurrencyValue.build(json: json.fetch(:creditLimit, {}))
|
16
|
+
record.provider_value = ProviderValue.build(json: json.fetch(:providerValue, {}))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/report'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
module Models
|
8
|
+
class CreditReport < BaseModel
|
9
|
+
ENDPOINT = 'companies/:connect_id'
|
10
|
+
|
11
|
+
attributes :report, :company_id, :user_id, :date_of_order, :language
|
12
|
+
|
13
|
+
def self.for(company_id)
|
14
|
+
url = format_url(ENDPOINT, connect_id: company_id.to_s.strip)
|
15
|
+
|
16
|
+
result = get(url)
|
17
|
+
|
18
|
+
build(json: result.body)
|
19
|
+
rescue InvalidRequestError
|
20
|
+
build(json: {})
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.build(json:)
|
24
|
+
super.tap do |record|
|
25
|
+
record.report = Report.build(json: json[:report]) if json.key?(:report)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/credit_rating'
|
5
|
+
require 'creditsafe/models/currency_value'
|
6
|
+
|
7
|
+
module Creditsafe
|
8
|
+
module Models
|
9
|
+
class CreditScore < BaseModel
|
10
|
+
attributes :current_credit_rating, :current_contract_limit,
|
11
|
+
:previous_credit_rating, :latest_rating_change_date
|
12
|
+
|
13
|
+
def self.build(json:)
|
14
|
+
super.tap do |record|
|
15
|
+
record.current_credit_rating = CreditRating.build(json: json.fetch(:currentCreditRating, {}))
|
16
|
+
record.current_contract_limit = CurrencyValue.build(json: json.fetch(:currentContractLimit, {}))
|
17
|
+
record.previous_credit_rating = CreditRating.build(json: json.fetch(:previousCreditRating, {}))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/company_summary'
|
5
|
+
require 'creditsafe/models/company_identification'
|
6
|
+
require 'creditsafe/models/credit_score'
|
7
|
+
require 'creditsafe/models/contact_information'
|
8
|
+
|
9
|
+
module Creditsafe
|
10
|
+
module Models
|
11
|
+
class Report < BaseModel
|
12
|
+
attributes :company_id, :language,
|
13
|
+
:company_summary, :company_identification, :credit_score,
|
14
|
+
:contact_information,
|
15
|
+
:share_capital_structure, :directors, :directorships,
|
16
|
+
:financial_statements, :local_financial_statements,
|
17
|
+
:payment_data, :payment_data_extra,
|
18
|
+
:negative_information, :additional_information
|
19
|
+
|
20
|
+
def self.build(json:)
|
21
|
+
super.tap do |record|
|
22
|
+
record.company_summary = CompanySummary.build(json: json.fetch(:companySummary, {}))
|
23
|
+
record.company_identification = CompanyIdentification.build(
|
24
|
+
json: json.fetch(:companyIdentification, {})
|
25
|
+
)
|
26
|
+
record.credit_score = CreditScore.build(json: json.fetch(:creditScore, {}))
|
27
|
+
record.contact_information = ContactInformation.build(json: json.fetch(:contactInformation, {}))
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'creditsafe/base_model'
|
4
|
+
require 'creditsafe/models/company'
|
5
|
+
|
6
|
+
module Creditsafe
|
7
|
+
module Models
|
8
|
+
class Search < BaseModel
|
9
|
+
ENDPOINT = 'companies'
|
10
|
+
|
11
|
+
attributes :companies
|
12
|
+
|
13
|
+
def self.find(reg_no, countries = Creditsafe.configuration.countries)
|
14
|
+
result = get(ENDPOINT, regNo: reg_no, countries: countries.join(','))
|
15
|
+
|
16
|
+
return nil unless successful_response?(result)
|
17
|
+
|
18
|
+
build(json: result.body)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.where(params = {})
|
22
|
+
unless params.key?(:countries)
|
23
|
+
countries = Creditsafe.configuration.countries
|
24
|
+
params = params.merge(countries: countries.join(','))
|
25
|
+
end
|
26
|
+
|
27
|
+
result = get(ENDPOINT, params)
|
28
|
+
|
29
|
+
return nil unless successful_response?(result)
|
30
|
+
|
31
|
+
build(json: result.body)
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.build(json:)
|
35
|
+
super.tap do |record|
|
36
|
+
record.companies = json.fetch(:companies, []).map { |c| Company.build(json: c) }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: creditsafe_connect
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nenad Petronijevic
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-10-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.15'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.15'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday_middleware
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.12'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: faraday_middleware-multi_json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.0.6
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.6
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: multi_json
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.13'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.13'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rainbow
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry-byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.6'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '3.6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '3.0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '3.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.58'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.58'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '1.27'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '1.27'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: vcr
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 4.0.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 4.0.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: webmock
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 3.7.2
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 3.7.2
|
167
|
+
description: Creditsafe Connect API Wrapper
|
168
|
+
email:
|
169
|
+
- nenad@finpoint.co.uk
|
170
|
+
executables: []
|
171
|
+
extensions: []
|
172
|
+
extra_rdoc_files: []
|
173
|
+
files:
|
174
|
+
- ".gitignore"
|
175
|
+
- ".rspec"
|
176
|
+
- ".rubocop.yml"
|
177
|
+
- ".ruby-gemset"
|
178
|
+
- ".ruby-version"
|
179
|
+
- Gemfile
|
180
|
+
- Gemfile.lock
|
181
|
+
- README.md
|
182
|
+
- Rakefile
|
183
|
+
- bin/console
|
184
|
+
- bin/setup
|
185
|
+
- creditsafe_connect.gemspec
|
186
|
+
- lib/creditsafe.rb
|
187
|
+
- lib/creditsafe/authenticate.rb
|
188
|
+
- lib/creditsafe/base_model.rb
|
189
|
+
- lib/creditsafe/camelizer_lower.rb
|
190
|
+
- lib/creditsafe/client.rb
|
191
|
+
- lib/creditsafe/configuration.rb
|
192
|
+
- lib/creditsafe/errors.rb
|
193
|
+
- lib/creditsafe/faraday_auth.rb
|
194
|
+
- lib/creditsafe/models/activity.rb
|
195
|
+
- lib/creditsafe/models/activity_classification.rb
|
196
|
+
- lib/creditsafe/models/address.rb
|
197
|
+
- lib/creditsafe/models/basic_information.rb
|
198
|
+
- lib/creditsafe/models/company.rb
|
199
|
+
- lib/creditsafe/models/company_identification.rb
|
200
|
+
- lib/creditsafe/models/company_status.rb
|
201
|
+
- lib/creditsafe/models/company_summary.rb
|
202
|
+
- lib/creditsafe/models/contact_information.rb
|
203
|
+
- lib/creditsafe/models/credit_rating.rb
|
204
|
+
- lib/creditsafe/models/credit_report.rb
|
205
|
+
- lib/creditsafe/models/credit_score.rb
|
206
|
+
- lib/creditsafe/models/currency_value.rb
|
207
|
+
- lib/creditsafe/models/legal_form.rb
|
208
|
+
- lib/creditsafe/models/main_activity.rb
|
209
|
+
- lib/creditsafe/models/provider_value.rb
|
210
|
+
- lib/creditsafe/models/report.rb
|
211
|
+
- lib/creditsafe/models/search.rb
|
212
|
+
- lib/creditsafe/version.rb
|
213
|
+
- lib/creditsafe_connect.rb
|
214
|
+
homepage: https://gitlab.com/finpoint/creditsafe_connect
|
215
|
+
licenses:
|
216
|
+
- MIT
|
217
|
+
metadata: {}
|
218
|
+
post_install_message:
|
219
|
+
rdoc_options: []
|
220
|
+
require_paths:
|
221
|
+
- lib
|
222
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
223
|
+
requirements:
|
224
|
+
- - ">="
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: 2.3.0
|
227
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
228
|
+
requirements:
|
229
|
+
- - ">="
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '0'
|
232
|
+
requirements: []
|
233
|
+
rubyforge_project:
|
234
|
+
rubygems_version: 2.7.6
|
235
|
+
signing_key:
|
236
|
+
specification_version: 4
|
237
|
+
summary: Creditsafe Connect API Wrapper
|
238
|
+
test_files: []
|