Sha256: 731b8f226ae061e4d4428edbdc43896ebb2b7cc2082a427d2be1e98f428848e5
Contents?: true
Size: 1.42 KB
Versions: 7
Compression:
Stored size: 1.42 KB
Contents
require 'faraday' module Faraday class EdsExceptionMiddleware < Faraday::Middleware def initialize(app) super app end def call(env) begin @app.call(env).on_complete do |response| case response.status when 200 when 400 if response.body['ErrorNumber'] == '132' raise EBSCO::EDS::NotFound.new(error_message(response)) else raise EBSCO::EDS::BadRequest.new(error_message(response)) end # when 401 # raise EBSCO::EDS::Unauthorized.new # when 403 # raise EBSCO::EDS::Forbidden.new # when 404 # raise EBSCO::EDS::NotFound.new # when 429 # raise EBSCO::EDS::TooManyRequests.new when 500 raise EBSCO::EDS::InternalServerError.new when 503 raise EBSCO::EDS::ServiceUnavailable.new else raise EBSCO::EDS::BadRequest.new(error_message(response)) end end rescue Faraday::ConnectionFailed raise EBSCO::EDS::ConnectionFailed.new end end private def error_message(response) #puts response.inspect { method: response.method, url: response.url, status: response.status, error_body: response.body } end end end
Version data entries
7 entries across 7 versions & 1 rubygems