Sha256: 6f839a91f5793d77d8325027db197419e6be20a1da30ca087b470f79c3dce397

Contents?: true

Size: 963 Bytes

Versions: 2

Compression:

Stored size: 963 Bytes

Contents

module Monri
  class Payments
    class StatusResponse < Response

      # @param [Hash] params
      def initialize(params)
        if params.has_key?(:payment_result)
          self[:payment_result] = PaymentResult.new(params.delete(:payment_result))
        end
        self.merge!(params)
      end

      # @return [String]
      def status
        self[:status]
      end

      # @return [String]
      def payment_status
        self[:payment_status]
      end

      # @return [String]
      def client_secret
        self[:client_secret]
      end

      # @return [Monri::Payments::PaymentResult]
      def payment_result
        self[:payment_result]
      end

      # @return [StatusResponse]
      def self.create
        raise ArgumentError, 'Provide a block' unless block_given?

        begin
          StatusResponse.new(yield)
        rescue StandardError => e
          StatusResponse.new(exception: e)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
monri-0.3.0 lib/monri/payments/status_response.rb
monri-0.2.0 lib/monri/payments/status_response.rb