require 'faraday'

# @private
module Faraday
  module Disqussion
    # @private
    class RaiseHttp5xx < ::Faraday::Response::Middleware
      def on_complete(env)
        case env[:status].to_i
        when 500
          raise ::Disqussion::InternalServerError.new(error_message(env, "Something is technically wrong."), env[:response_headers])
        end
      end
  
      private

      def error_message(env, body=nil)
        "#{env[:method].to_s.upcase} #{env[:url].to_s}: #{[env[:status].to_s + ':', body].compact.join(' ')} Check http://status.disqus.com/ for updates on the status of the Disqus service."
      end

    end    
  end
end