Skip to content

Commit f407acd

Browse files
committed
Add 408-RequestTimeout class
1 parent 37f3427 commit f407acd

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

lib/json_api_client/errors.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ def initialize(uri)
5454
end
5555
end
5656

57+
class RequestTimeout < ClientError
58+
end
59+
5760
class Conflict < ClientError
5861
def initialize(env, msg = 'Resource already exists')
5962
super env, msg

lib/json_api_client/middleware/status.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ def handle_status(code, env)
3838
raise Errors::AccessDenied, env
3939
when 404
4040
raise Errors::NotFound, env[:url]
41+
when 408
42+
raise Errors::RequestTimeout, env
4143
when 409
4244
raise Errors::Conflict, env
4345
when 422

test/unit/errors_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ def test_not_authorized
9696
end
9797
end
9898

99+
def test_request_timeout
100+
stub_request(:get, "http://example.com/users")
101+
.to_return(headers: {content_type: "text/plain"}, status: 408, body: "request timeout")
102+
103+
assert_raises JsonApiClient::Errors::RequestTimeout do
104+
User.all
105+
end
106+
end
107+
99108
def test_too_many_requests
100109
stub_request(:get, "http://example.com/users")
101110
.to_return(headers: {content_type: "text/plain"}, status: 429, body: "too many requests")

0 commit comments

Comments
 (0)