Sha256: 30059b15511d359fbd75acf1753eb0c8bc35aaa81b44298660baef9b73639050

Contents?: true

Size: 630 Bytes

Versions: 12

Compression:

Stored size: 630 Bytes

Contents

module BloomRemitClient
  module Responses
    class Base

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

      private

      def default_success
        raw_response.success?
      end

      def default_body
        json = JSON.parse(raw_response.body)

        if json.is_a?(Array)
          json.map(&:with_indifferent_access)
        else
          json.with_indifferent_access
        end
      end

    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
bloom_remit_client-0.15.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.14.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.13.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.12.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.11.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.10.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.9.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.8.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.7.1 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.7.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.6.0 lib/bloom_remit_client/responses/base.rb
bloom_remit_client-0.5.0 lib/bloom_remit_client/responses/base.rb