Skip to content

Commit b026086

Browse files
authored
Merge pull request #302 from bbraschi/create-precondition-failed-exception
Create PreconditionFailed (412) exception
2 parents 326b452 + a205911 commit b026086

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

lib/active_resource/base.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ module ActiveResource
202202
# * 405 - ActiveResource::MethodNotAllowed
203203
# * 409 - ActiveResource::ResourceConflict
204204
# * 410 - ActiveResource::ResourceGone
205+
# * 412 - ActiveResource::PreconditionFailed
205206
# * 422 - ActiveResource::ResourceInvalid (rescued by save as validation errors)
206207
# * 401..499 - ActiveResource::ClientError
207208
# * 500..599 - ActiveResource::ServerError

lib/active_resource/connection.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ def handle_response(response)
151151
raise(ResourceConflict.new(response))
152152
when 410
153153
raise(ResourceGone.new(response))
154+
when 412
155+
raise(PreconditionFailed.new(response))
154156
when 422
155157
raise(ResourceInvalid.new(response))
156158
when 401...500

lib/active_resource/exceptions.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ class ResourceConflict < ClientError # :nodoc:
7171
class ResourceGone < ClientError # :nodoc:
7272
end
7373

74+
# 412 Precondition Failed
75+
class PreconditionFailed < ClientError # :nodoc:
76+
end
77+
7478
# 5xx Server Error
7579
class ServerError < ConnectionError # :nodoc:
7680
end

test/cases/connection_test.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ def test_handle_response
8989
# 410 is a removed resource
9090
assert_response_raises ActiveResource::ResourceGone, 410
9191

92+
# 412 is a precondition failed
93+
assert_response_raises ActiveResource::PreconditionFailed, 412
94+
9295
# 422 is a validation error
9396
assert_response_raises ActiveResource::ResourceInvalid, 422
9497

0 commit comments

Comments
 (0)