Sha256: f62a87d28a4f7807edaae9423e4ac4043fa57c140fe13aabc59dcdbdd3f5a2f5

Contents?: true

Size: 850 Bytes

Versions: 6

Compression:

Stored size: 850 Bytes

Contents

# frozen_string_literal: true

module Fortnox
  module API
    module RequestHandling
      private

        def raise_api_error(error, response)
          message = (error['message'] || error['Message'] || 'Okänt fel')

          message += "\n\n#{response.request.inspect}" if Fortnox::API.debugging

          raise Fortnox::API::RemoteServerError, message
        end

        def validate_response(response)
          return if response.code == 200

          api_error = response.parsed_response['ErrorInformation']
          raise_api_error(api_error, response) if api_error
        end

        def validate_and_parse(response)
          validate_response(response)
          response.parsed_response
        end

        def execute
          response = yield(self.class)
          validate_and_parse response
        end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fortnox-api-0.8.2 lib/fortnox/api/request_handling.rb
fortnox-api-0.8.1 lib/fortnox/api/request_handling.rb
fortnox-api-0.8.0 lib/fortnox/api/request_handling.rb
fortnox-api-0.7.2 lib/fortnox/api/request_handling.rb
fortnox-api-0.7.1 lib/fortnox/api/request_handling.rb
fortnox-api-0.7.0 lib/fortnox/api/request_handling.rb