Repository URL to install this package:
|
Version:
0.1.1 ▾
|
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 ServiceM8::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 ServiceM8::RecordNotFoundError.new(error_message)
else
raise ServiceM8::BadRequestError.new(error_message)
end
else
raise ServiceM8::AuthorizationError.new(e)
end
end
end
end
end