Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
field_edge_api / lib / faraday / raise_exception.rb
Size: Mime:
require 'nokogiri'

module FaradayMiddleware
  class RaiseException < Faraday::Middleware

    def initialize(app)
      super(app)
    end

    def call(env)
      begin
        @app.call(env)
      rescue Faraday::Error::ConnectionFailed, Faraday::TimeoutError => e
        raise FieldEdgeApi::ConnectionError.new(e)
      rescue Faraday::ParsingError => e
        if e.message.squish.include? ('<body>')
          html = Nokogiri::HTML.parse(e.message.split('\'')[1])
          error_message = html.css('p').text
          if error_message.include? 'UUID is not valid'
            raise FieldEdgeApi::RecordNotFoundError.new(error_message)
          else
            raise FieldEdgeApi::BadRequestError.new(error_message)
          end
        else
          raise FieldEdgeApi::AuthorizationError.new(e)
        end
      end
    end

  end
end