Sha256: 16ba934992b52fb4866635d8b44059c44e95e8140740b0c7a11d1a166c3b77a3

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

require 'faraday'
require 'angellist_api/error/bad_gateway'
require 'angellist_api/error/internal_server_error'
require 'angellist_api/error/service_unavailable'

module AngellistApi
  module Response
    class RaiseServerError < Faraday::Response::Middleware
      def on_complete(env)
        case env[:status].to_i
        when 500
          raise AngellistApi::Error::InternalServerError.new(error_message(env, "Something is technically wrong."), env[:response_headers])
        when 502
          raise AngellistApi::Error::BadGateway.new(error_message(env, "AngellistApi is down or being upgraded."), env[:response_headers])
        when 503
          raise AngellistApi::Error::ServiceUnavailable.new(error_message(env, "(__-){ AngellistApi is over capacity."), 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(' ')} You should follow @angellistapi for frequent updates. And please, send your feedback to api@angel.co. Happy hacking!"
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
angellist_api-1.1.0 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.7 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.6 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.5 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.4 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.3 lib/angellist_api/response/raise_server_error.rb
angellist_api-1.0.2 lib/angellist_api/response/raise_server_error.rb