Sha256: 4a641cc777f522d55532acd4d7422e1747a11311a408fc1f2f7a926e5ae2043e

Contents?: true

Size: 1.46 KB

Versions: 13

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Uffizzi
  module ResponseHelper
    class << self
      def created?(response)
        response[:code] == Net::HTTPCreated
      end

      def unprocessable_entity?(response)
        response[:code] == Net::HTTPUnprocessableEntity
      end

      def not_found?(response)
        response[:code] == Net::HTTPNotFound
      end

      def forbidden?(response)
        response[:code] == Net::HTTPForbidden
      end

      def no_content?(response)
        response[:code] == Net::HTTPNoContent
      end

      def ok?(response)
        response[:code] == Net::HTTPOK
      end

      def handle_failed_response(response)
        prepared_errors = prepare_errors(response[:body][:errors])
        raise Uffizzi::Error.new(prepared_errors)
      end

      def handle_invalid_compose_response(response)
        prepared_errors = prepare_errors(response[:body][:compose_file][:payload][:errors])
        raise Uffizzi::Error.new(prepared_errors)
      end

      private

      def prepare_errors(errors)
        errors.values.reduce('') do |acc, error_messages|
          if error_messages.is_a?(Array)
            error_messages.each { |error_message| acc = "#{acc}#{prepare_error_message(error_message)}\n" }
          else
            acc = "#{acc}#{prepare_error_message(error_message)}\n"
          end

          acc
        end
      end

      def prepare_error_message(error_message)
        error_message.split('::').last
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
uffizzi-cli-1.0.5 lib/uffizzi/response_helper.rb
uffizzi-cli-1.0.4 lib/uffizzi/response_helper.rb
uffizzi-cli-1.0.3 lib/uffizzi/response_helper.rb
uffizzi-cli-1.0.2 lib/uffizzi/response_helper.rb
uffizzi-cli-1.0.1 lib/uffizzi/response_helper.rb
uffizzi-cli-1.0.0 lib/uffizzi/response_helper.rb
uffizzi-cli-0.14.0 lib/uffizzi/response_helper.rb
uffizzi-cli-0.12.0 lib/uffizzi/response_helper.rb
uffizzi-cli-0.11.5 lib/uffizzi/response_helper.rb
uffizzi-cli-0.11.4 lib/uffizzi/response_helper.rb
uffizzi-cli-0.11.3 lib/uffizzi/response_helper.rb
uffizzi-cli-0.11.2 lib/uffizzi/response_helper.rb
uffizzi-cli-0.11.1 lib/uffizzi/response_helper.rb