Repository URL to install this package:
|
Version:
0.1.0 ▾
|
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