Sha256: d41d10aa54b549f4bfaecb3f3fad9e1feed92bd787108802ec78ef6f6ddaa124

Contents?: true

Size: 888 Bytes

Versions: 4

Compression:

Stored size: 888 Bytes

Contents

module Ridley
  module Middleware
    # @author Jamie Winsor <reset@riotgames.com>
    class ChefResponse < Faraday::Response::Middleware
      class << self
        # Determines if a response from the Chef server was successful
        #
        # @param [Hash] env
        #   a faraday request env
        #
        # @return [Boolean]
        def success?(env)
          (200..210).to_a.index(env[:status].to_i) ? true : false
        end
      end

      include Ridley::Logging

      def on_complete(env)
        log.debug { "==> handling Chef response" }
        log.debug { "request env: #{env}" }

        unless self.class.success?(env)
          log.debug { "** error encounted in Chef response" }
          raise Errors::HTTPError.fabricate(env)
        end
      end
    end
  end
end

Faraday.register_middleware(:response, chef_response: Ridley::Middleware::ChefResponse)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ridley-1.0.0.rc2 lib/ridley/middleware/chef_response.rb
ridley-1.0.0.rc1 lib/ridley/middleware/chef_response.rb
ridley-0.12.4 lib/ridley/middleware/chef_response.rb
ridley-0.12.3 lib/ridley/middleware/chef_response.rb