Sha256: 99eef50c7348dabb849a12f4e264ba049261e37ee6ecf9389bf7adffe58ca221

Contents?: true

Size: 648 Bytes

Versions: 2

Compression:

Stored size: 648 Bytes

Contents

module BluepanClient
  class BaseResponse

    include Virtus.model
    attribute :raw_response, Object
    attribute :body, String, lazy: true, default: :default_body
    attribute(:parsed_body, IndifferentHash, {
      lazy: true,
      default: :default_parsed_body,
    })
    attribute :success, Boolean, lazy: true, default: :default_success

    private

    def default_success
      return false if !raw_response.success?
      return true if !parsed_body.respond_to?(:keys)
      parsed_body[:error].nil?
    end

    def default_body
      raw_response.body
    end

    def default_parsed_body
      JSON.parse(body)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bluepan_client-0.2.0 lib/bluepan_client/responses/base_response.rb
bluepan_client-0.1.0 lib/bluepan_client/responses/base_response.rb