lib/bearcat/client.rb in bearcat-1.5.3 vs lib/bearcat/client.rb in bearcat-1.5.4
- old
+ new
@@ -30,10 +30,16 @@
connection.send(method, &block)
end
ApiArray.process_response(response, self)
end
+ def set_connection(config)
+ super
+ connection.builder.insert(Footrest::RaiseFootrestErrors, ExtendedRaiseFootrestErrors)
+ connection.builder.delete(Footrest::RaiseFootrestErrors)
+ end
+
protected
def rate_limited_request
return yield unless rate_limiter
@@ -97,8 +103,17 @@
private
def rate_limit_key
Digest::SHA1.hexdigest(config[:token])
+ end
+ end
+
+ # Overridden response error middleware that, if an error code doesn't map to an exception, raises a more generic exception
+ class ExtendedRaiseFootrestErrors < Footrest::RaiseFootrestErrors
+ def on_complete(response)
+ super
+ key = response[:status].to_i
+ raise ERROR_MAP[key.floor(-2)], response if key >= 400
end
end
end