onfido 0.1.0 → 0.2.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 +4 -4
- data/CHANGELOG.md +8 -2
- data/README.md +6 -3
- data/lib/onfido.rb +1 -0
- data/lib/onfido/errors/server_error.rb +4 -0
- data/lib/onfido/resource.rb +7 -3
- data/lib/onfido/version.rb +1 -1
- data/onfido.gemspec +1 -1
- data/spec/integrations/exceptions_spec.rb +3 -3
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3159a3e9bff94cd01155eabee9d77b7785c3eab
|
4
|
+
data.tar.gz: a67a5dd889545159c742a15fe12ac89630fb31a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8577a2bc2a1f1b176f3a487f6ae16a8a9ea3dfeff4db962f63475e5c5a1942bb92c80f076d7e2a78f2551b36208a905e3e6406f094be7df8660f03f287f864fc
|
7
|
+
data.tar.gz: 6eccfff6eb4d0b663420680d60034afbf9346559c74eea5a7f0cd059c458f320e7bb639f45456103f666bf1fb64800a91b27891863168659667b6eb848f2c583
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
## v0.
|
1
|
+
## v0.2.0, 9 February 2015
|
2
|
+
|
3
|
+
- BREAKING: adds `Onfido::ServerError`, which is raised whenever Onfido responds
|
4
|
+
with a 5xx code. Previously `Onfido::RequestError` would have been raised, but
|
5
|
+
this is now reserved for non-5xx responses.
|
6
|
+
|
7
|
+
## v0.1.0, 11 November 2015
|
2
8
|
|
3
9
|
- BREAKING: remove `throws_exceptions` option. We now always throw exceptions
|
4
10
|
for errors. This option had become confusing since `Onfido::ConnectionError`
|
@@ -6,6 +12,6 @@
|
|
6
12
|
- Add base errors class (`Onfido::OnfidoError`)
|
7
13
|
- Add rubocop, and fix style inconsistencies
|
8
14
|
|
9
|
-
## v0.0.4 10 November 2015
|
15
|
+
## v0.0.4, 10 November 2015
|
10
16
|
|
11
17
|
- Split out connection errors so they can be automatically retried
|
data/README.md
CHANGED
@@ -144,7 +144,12 @@ api.check.all('applicant_id', page: 2, per_page: 10)
|
|
144
144
|
|
145
145
|
## Error Handling
|
146
146
|
|
147
|
-
|
147
|
+
There are three classes of errors raised by the library, all of which subclass `Onfido::Error`.
|
148
|
+
- `Onfido::ServerError` is raised whenever Onfido returns a `5xx` response
|
149
|
+
- `Onfido::RequestError` is raised whenever Onfido returns any other kind of error
|
150
|
+
- `Onfido::ConnectionError` is raised whenever a network error occurs (e.g., a timeout)
|
151
|
+
|
152
|
+
All three error classes provide the `response_code`, `response_body`, `json_body`, `type` and `fields` of the error (although for `Onfido::ServerError` and `Onfido::ConnectionError` the last three are likely to be `nil`).
|
148
153
|
|
149
154
|
```ruby
|
150
155
|
def create_applicant
|
@@ -156,8 +161,6 @@ If you rescue `Onfido::RequestError`, you are provided with the response code, r
|
|
156
161
|
end
|
157
162
|
```
|
158
163
|
|
159
|
-
You can also rescue `Onfido::ConnectionError`, which is raised when something goes wrong with the connection to Onfido. This is useful for adding automatic retries to your background jobs.
|
160
|
-
|
161
164
|
### Roadmap
|
162
165
|
|
163
166
|
- Improve test coverage with more scenarios
|
data/lib/onfido.rb
CHANGED
@@ -7,6 +7,7 @@ require 'onfido/version'
|
|
7
7
|
require 'onfido/configuration'
|
8
8
|
require 'onfido/errors/onfido_error'
|
9
9
|
require 'onfido/errors/request_error'
|
10
|
+
require 'onfido/errors/server_error'
|
10
11
|
require 'onfido/errors/connection_error'
|
11
12
|
require 'onfido/null_logger'
|
12
13
|
require 'onfido/resource'
|
data/lib/onfido/resource.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Onfido
|
2
2
|
class Resource
|
3
|
-
VALID_HTTP_METHODS = %i(get post)
|
3
|
+
VALID_HTTP_METHODS = %i(get post).freeze
|
4
4
|
|
5
5
|
def url_for(path)
|
6
6
|
Onfido.endpoint + path
|
@@ -77,7 +77,9 @@ module Onfido
|
|
77
77
|
general_api_error(response.code, response.body)
|
78
78
|
end
|
79
79
|
|
80
|
-
|
80
|
+
error_class = response.code.to_i >= 500 ? ServerError : RequestError
|
81
|
+
|
82
|
+
raise error_class.new(
|
81
83
|
parsed_response["error"]['message'],
|
82
84
|
response_code: response.code,
|
83
85
|
response_body: response.body
|
@@ -85,7 +87,9 @@ module Onfido
|
|
85
87
|
end
|
86
88
|
|
87
89
|
def general_api_error(response_code, response_body)
|
88
|
-
|
90
|
+
error_class = response_code.to_i >= 500 ? ServerError : RequestError
|
91
|
+
|
92
|
+
raise error_class.new(
|
89
93
|
"Invalid response object from API: #{response_body} " \
|
90
94
|
"(HTTP response code was #{response_code})",
|
91
95
|
response_code: response_code,
|
data/lib/onfido/version.rb
CHANGED
data/onfido.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
23
23
|
spec.add_development_dependency 'webmock', '~> 1.22'
|
24
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
24
|
+
spec.add_development_dependency 'rubocop', '~> 0.37.0'
|
25
25
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
26
26
|
spec.add_development_dependency 'rspec-its', '~> 1.2'
|
27
27
|
spec.add_development_dependency 'sinatra', '~> 1.4'
|
@@ -24,12 +24,12 @@ describe Onfido::Resource do
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
context 'unparseable JSON' do
|
27
|
+
context 'unparseable JSON 5xx' do
|
28
28
|
let(:path) { 'unparseable_response' }
|
29
29
|
|
30
|
-
it 'raises a
|
30
|
+
it 'raises a server error' do
|
31
31
|
expect { resource.get(url: url, payload: payload) }.
|
32
|
-
to raise_error(Onfido::
|
32
|
+
to raise_error(Onfido::ServerError, /response code was 504/)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onfido
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pericles Theodorou
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-02-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -59,14 +59,14 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.37.0
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.37.0
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rspec
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- lib/onfido/errors/connection_error.rb
|
151
151
|
- lib/onfido/errors/onfido_error.rb
|
152
152
|
- lib/onfido/errors/request_error.rb
|
153
|
+
- lib/onfido/errors/server_error.rb
|
153
154
|
- lib/onfido/null_logger.rb
|
154
155
|
- lib/onfido/report.rb
|
155
156
|
- lib/onfido/resource.rb
|