ddy_remote_resource 1.0.0.rc3 → 1.0.0.rc4
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/lib/remote_resource.rb +1 -87
- data/lib/remote_resource/errors.rb +88 -0
- data/lib/remote_resource/version.rb +1 -1
- data/spec/lib/remote_resource/version_spec.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bccfcf5609907813018b9d01ee5c73c5e114a000
|
4
|
+
data.tar.gz: 459e6e2e2378a785bf9e7ed9248113c713d26429
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71e2e8d6c00dfb31b27671c7d13c2057b90863f75bfd12e65986a53a9bb7240a1db85ef15a25357fbc4d808b35285973ad86b1921c85a311637b4ae162afb9d7
|
7
|
+
data.tar.gz: 9d87d498ff3d0585abadacee169f7419c44af52a16c2af24ca62275da16e1bb9c72bf2a2c4f379a524895150edac78c3f938ead42af4aa838917fe090e045e82
|
data/lib/remote_resource.rb
CHANGED
@@ -6,6 +6,7 @@ require 'typhoeus'
|
|
6
6
|
require_relative 'extensions/ethon/easy/queryable'
|
7
7
|
|
8
8
|
require 'remote_resource/version'
|
9
|
+
require 'remote_resource/errors'
|
9
10
|
require 'remote_resource/base'
|
10
11
|
require 'remote_resource/collection'
|
11
12
|
require 'remote_resource/url_naming_determination'
|
@@ -21,91 +22,4 @@ require 'remote_resource/request'
|
|
21
22
|
require 'remote_resource/util'
|
22
23
|
|
23
24
|
module RemoteResource
|
24
|
-
RemoteResourceError = Class.new(StandardError)
|
25
|
-
|
26
|
-
IdMissingError = Class.new(RemoteResourceError)
|
27
|
-
|
28
|
-
CollectionOptionKeyError = Class.new(RemoteResourceError)
|
29
|
-
|
30
|
-
HTTPMethodUnsupported = Class.new(RemoteResourceError) # REST action
|
31
|
-
|
32
|
-
class HTTPError < RemoteResourceError # HTTP errors
|
33
|
-
|
34
|
-
def initialize(request, response)
|
35
|
-
@request = request
|
36
|
-
@response = response
|
37
|
-
end
|
38
|
-
|
39
|
-
def resource_klass
|
40
|
-
@request.resource_klass
|
41
|
-
end
|
42
|
-
|
43
|
-
def http_action
|
44
|
-
@request.http_action
|
45
|
-
end
|
46
|
-
|
47
|
-
def request_url
|
48
|
-
@request.request_url
|
49
|
-
end
|
50
|
-
|
51
|
-
def request_query
|
52
|
-
@request.query
|
53
|
-
end
|
54
|
-
|
55
|
-
def request_body
|
56
|
-
@request.body # TODO: Filter sensitive information using: RemoteResource::Util.filter_params
|
57
|
-
end
|
58
|
-
|
59
|
-
def request_headers
|
60
|
-
@request.headers
|
61
|
-
end
|
62
|
-
|
63
|
-
def response_code
|
64
|
-
@response.response_code
|
65
|
-
end
|
66
|
-
|
67
|
-
def response_body
|
68
|
-
@response.response_body # TODO: Filter sensitive information using: RemoteResource::Util.filter_params
|
69
|
-
end
|
70
|
-
|
71
|
-
def response_headers
|
72
|
-
@response.response_headers
|
73
|
-
end
|
74
|
-
|
75
|
-
def to_s
|
76
|
-
message = "HTTP request failed for #{resource_klass}"
|
77
|
-
message << " with response_code=#{response_code}" if response_code.present?
|
78
|
-
message << " with http_action=#{http_action}"
|
79
|
-
message << " with request_url=#{request_url}"
|
80
|
-
# message << " with request_query=#{request_query}" if request_query.present? # TODO: Test usability of error message whether to include this
|
81
|
-
# message << " with request_body=#{request_body}" if request_body.present? # TODO: Test usability of error message whether to include this
|
82
|
-
# message << " with response_body=#{response_body}" if response_body.present? # TODO: Test usability of error message whether to include this
|
83
|
-
message
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
HTTPRedirectionError = Class.new(HTTPError) # HTTP 3xx
|
88
|
-
HTTPClientError = Class.new(HTTPError) # HTTP 4xx
|
89
|
-
HTTPServerError = Class.new(HTTPError) # HTTP 5xx
|
90
|
-
|
91
|
-
HTTPBadRequest = Class.new(HTTPClientError) # HTTP 400
|
92
|
-
HTTPUnauthorized = Class.new(HTTPClientError) # HTTP 401
|
93
|
-
HTTPForbidden = Class.new(HTTPClientError) # HTTP 403
|
94
|
-
HTTPNotFound = Class.new(HTTPClientError) # HTTP 404
|
95
|
-
HTTPMethodNotAllowed = Class.new(HTTPClientError) # HTTP 405
|
96
|
-
HTTPNotAcceptable = Class.new(HTTPClientError) # HTTP 406
|
97
|
-
HTTPRequestTimeout = Class.new(HTTPClientError) # HTTP 408
|
98
|
-
HTTPConflict = Class.new(HTTPClientError) # HTTP 409
|
99
|
-
HTTPGone = Class.new(HTTPClientError) # HTTP 410
|
100
|
-
HTTPTeapot = Class.new(HTTPClientError) # HTTP 418
|
101
|
-
|
102
|
-
NginxClientError = Class.new(HTTPClientError) # HTTP errors used in Nginx
|
103
|
-
|
104
|
-
HTTPNoResponse = Class.new(NginxClientError) # HTTP 444
|
105
|
-
HTTPRequestHeaderTooLarge = Class.new(NginxClientError) # HTTP 494
|
106
|
-
HTTPCertError = Class.new(NginxClientError) # HTTP 495
|
107
|
-
HTTPNoCert = Class.new(NginxClientError) # HTTP 496
|
108
|
-
HTTPToHTTPS = Class.new(NginxClientError) # HTTP 497
|
109
|
-
HTTPClientClosedRequest = Class.new(NginxClientError) # HTTP 499
|
110
|
-
|
111
25
|
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module RemoteResource
|
2
|
+
RemoteResourceError = Class.new(StandardError)
|
3
|
+
|
4
|
+
IdMissingError = Class.new(RemoteResourceError)
|
5
|
+
|
6
|
+
CollectionOptionKeyError = Class.new(RemoteResourceError)
|
7
|
+
|
8
|
+
HTTPMethodUnsupported = Class.new(RemoteResourceError) # REST action
|
9
|
+
|
10
|
+
class HTTPError < RemoteResourceError # HTTP errors
|
11
|
+
|
12
|
+
def initialize(request, response)
|
13
|
+
@request = request
|
14
|
+
@response = response
|
15
|
+
end
|
16
|
+
|
17
|
+
def resource_klass
|
18
|
+
@request.resource_klass
|
19
|
+
end
|
20
|
+
|
21
|
+
def http_action
|
22
|
+
@request.http_action
|
23
|
+
end
|
24
|
+
|
25
|
+
def request_url
|
26
|
+
@request.request_url
|
27
|
+
end
|
28
|
+
|
29
|
+
def request_query
|
30
|
+
@request.query
|
31
|
+
end
|
32
|
+
|
33
|
+
def request_body
|
34
|
+
@request.body # TODO: Filter sensitive information using: RemoteResource::Util.filter_params
|
35
|
+
end
|
36
|
+
|
37
|
+
def request_headers
|
38
|
+
@request.headers
|
39
|
+
end
|
40
|
+
|
41
|
+
def response_code
|
42
|
+
@response.response_code
|
43
|
+
end
|
44
|
+
|
45
|
+
def response_body
|
46
|
+
@response.response_body # TODO: Filter sensitive information using: RemoteResource::Util.filter_params
|
47
|
+
end
|
48
|
+
|
49
|
+
def response_headers
|
50
|
+
@response.response_headers
|
51
|
+
end
|
52
|
+
|
53
|
+
def to_s
|
54
|
+
message = "HTTP request failed for #{resource_klass}"
|
55
|
+
message << " with response_code=#{response_code}" if response_code.present?
|
56
|
+
message << " with http_action=#{http_action}"
|
57
|
+
message << " with request_url=#{request_url}"
|
58
|
+
# message << " with request_query=#{request_query}" if request_query.present? # TODO: Test usability of error message whether to include this
|
59
|
+
# message << " with request_body=#{request_body}" if request_body.present? # TODO: Test usability of error message whether to include this
|
60
|
+
# message << " with response_body=#{response_body}" if response_body.present? # TODO: Test usability of error message whether to include this
|
61
|
+
message
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
HTTPRedirectionError = Class.new(HTTPError) # HTTP 3xx
|
66
|
+
HTTPClientError = Class.new(HTTPError) # HTTP 4xx
|
67
|
+
HTTPServerError = Class.new(HTTPError) # HTTP 5xx
|
68
|
+
|
69
|
+
HTTPBadRequest = Class.new(HTTPClientError) # HTTP 400
|
70
|
+
HTTPUnauthorized = Class.new(HTTPClientError) # HTTP 401
|
71
|
+
HTTPForbidden = Class.new(HTTPClientError) # HTTP 403
|
72
|
+
HTTPNotFound = Class.new(HTTPClientError) # HTTP 404
|
73
|
+
HTTPMethodNotAllowed = Class.new(HTTPClientError) # HTTP 405
|
74
|
+
HTTPNotAcceptable = Class.new(HTTPClientError) # HTTP 406
|
75
|
+
HTTPRequestTimeout = Class.new(HTTPClientError) # HTTP 408
|
76
|
+
HTTPConflict = Class.new(HTTPClientError) # HTTP 409
|
77
|
+
HTTPGone = Class.new(HTTPClientError) # HTTP 410
|
78
|
+
HTTPTeapot = Class.new(HTTPClientError) # HTTP 418
|
79
|
+
|
80
|
+
NginxClientError = Class.new(HTTPClientError) # HTTP errors used in Nginx
|
81
|
+
|
82
|
+
HTTPNoResponse = Class.new(NginxClientError) # HTTP 444
|
83
|
+
HTTPRequestHeaderTooLarge = Class.new(NginxClientError) # HTTP 494
|
84
|
+
HTTPCertError = Class.new(NginxClientError) # HTTP 495
|
85
|
+
HTTPNoCert = Class.new(NginxClientError) # HTTP 496
|
86
|
+
HTTPToHTTPS = Class.new(NginxClientError) # HTTP 497
|
87
|
+
HTTPClientClosedRequest = Class.new(NginxClientError) # HTTP 499
|
88
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddy_remote_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.rc4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan van der Pas
|
@@ -235,6 +235,7 @@ files:
|
|
235
235
|
- lib/remote_resource/collection.rb
|
236
236
|
- lib/remote_resource/connection.rb
|
237
237
|
- lib/remote_resource/connection_options.rb
|
238
|
+
- lib/remote_resource/errors.rb
|
238
239
|
- lib/remote_resource/querying/finder_methods.rb
|
239
240
|
- lib/remote_resource/querying/persistence_methods.rb
|
240
241
|
- lib/remote_resource/request.rb
|