Sha256: 766de74e5c60e509e40a6e405a945ed2801963dfdde42147bbf4dbdd23db2bae

Contents?: true

Size: 771 Bytes

Versions: 2

Compression:

Stored size: 771 Bytes

Contents

# frozen_string_literal: true

require 'json'

module Kentaa
  module Api
    class Response
      attr_reader :response, :body

      def initialize(response)
        @response = response
        @body = parse_body(response.body)
      end

      def success?
        (http_code == 200 || http_code == 201) && !message
      end

      def error?
        !success?
      end

      def http_code
        response.code.to_i
      end

      def request_uri
        response.uri
      end

      def message
        body[:message]
      end

      private

      def parse_body(body)
        JSON.parse(body, symbolize_names: true)
      rescue JSON::ParserError => e
        {
          message: "Unable to parse JSON: #{e.message}"
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kentaa-api-0.3.2 lib/kentaa/api/response.rb
kentaa-api-0.3.1 lib/kentaa/api/response.rb