class Skroutz::ErrorHandler
Public Instance Methods
on_complete(env)
click to toggle source
# File lib/skroutz/errors.rb, line 52 def on_complete(env) status = env[:status] return unless (400...600).include?(status) send("handle_#{status.to_s.gsub(/(\d\d)$/, 'xx')}", env) end
Private Instance Methods
handle_4xx(env)
click to toggle source
# File lib/skroutz/errors.rb, line 62 def handle_4xx(env) # rubocop:disable Metrics/AbcSize case env.status when 400 raise Skroutz::ClientError.new(env.status, env.body) when 401 raise Skroutz::UnauthorizedError.new(env.status, env.body) when 403 raise Skroutz::RateLimitingError if rate_limited?(env) raise Skroutz::ClientError.new(env.status, env.body) when 404, 410 raise Skroutz::ResourceNotFound.new(env.status, env.body) end end
handle_5xx(env)
click to toggle source
# File lib/skroutz/errors.rb, line 76 def handle_5xx(env) raise Skroutz::ServerError.new(env.status, env.body) end
rate_limited?(env)
click to toggle source
# File lib/skroutz/errors.rb, line 80 def rate_limited?(env) env.response_headers.fetch('x-ratelimit-remaining', 1).to_i <= 0 end