Sha256: f8290b623a51d98aba2d4c39d2546540ccfeff2cfe73dfe6c526e07b13a979d9

Contents?: true

Size: 1.34 KB

Versions: 11

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Bs2Api
  module Entities
    class Payment
      attr_accessor :payment_id, :end_to_end_id, :receiver, :payer, :status

      def initialize(args = {})
        @payment_id    = args.fetch(:payment_id, nil)
        @end_to_end_id = args.fetch(:end_to_end_id, nil)
        @receiver      = args.fetch(:receiver, nil)
        @payer         = args.fetch(:payer, nil)
        @status        = args.fetch(:status, nil)
      end

      def to_hash
        hash_data = {
          "pagamentoId": @payment_id,
          "endToEndId":  @end_to_end_id,
          "status":      @status
        }

        hash_data.merge!({ "recebedor": @receiver.to_hash } ) if @receiver.present?
        hash_data.merge!({ "pagador": @payer.to_hash } ) if @payer.present?
        ActiveSupport::HashWithIndifferentAccess.new(hash_data)
      end

      def self.from_response(hash_payload)
        hash = ActiveSupport::HashWithIndifferentAccess.new(hash_payload)

        Bs2Api::Entities::Payment.new(
          payment_id:    hash["pagamentoId"] || hash["cobranca"]["id"],
          end_to_end_id: hash["endToEndId"],
          receiver:      Bs2Api::Entities::Bank.from_response(hash["recebedor"]),
          payer:         Bs2Api::Entities::Bank.from_response(hash["pagador"]),
          status:        hash["status"]
        )
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
bs2_api-1.7.0 lib/bs2_api/entities/payment.rb
bs2_api-1.6.2 lib/bs2_api/entities/payment.rb
bs2_api-1.6.1 lib/bs2_api/entities/payment.rb
bs2_api-1.6.0 lib/bs2_api/entities/payment.rb
bs2_api-1.5.1 lib/bs2_api/entities/payment.rb
bs2_api-1.5.0 lib/bs2_api/entities/payment.rb
bs2_api-1.4.3 lib/bs2_api/entities/payment.rb
bs2_api-1.4.2 lib/bs2_api/entities/payment.rb
bs2_api-1.4.1 lib/bs2_api/entities/payment.rb
bs2_api-1.4.0 lib/bs2_api/entities/payment.rb
bs2_api-1.2.2 lib/bs2_api/entities/payment.rb