Sha256: 3ebabb7c4701fe46a690c3ac3a975aa664080ec31c2b2ab994bd5afc3686f7f5
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
module Monri class Transactions class TransactionResponse < Response # @param [Hash] params def initialize(params) if params.has_key?(:errors) self[:errors] = params.delete(:errors) end if params.has_key?(:transaction) self[:transaction] = Monri::Transactions::Transaction.new(params.delete(:transaction)) end if params.has_key?(:secure_message) self[:secure_message] = Monri::Transactions::SecureMessage.new(params.delete(:secure_message)) end super(params) end # @return [TrueClass, FalseClass] def failed? errors != nil && errors.length > 0 || super end # @return [Array] def errors self[:errors] end # @return [Monri::Transactions::TransactionResponse] def transaction self[:transaction] end # @return [Monri::Transactions::SecureMessage] def secure_message self[:secure_message] end # @return [TransactionResponse] def self.create raise ArgumentError, 'Provide a block' unless block_given? begin TransactionResponse.new(yield) rescue StandardError => e params = { exception: e } if e.is_a?(Monri::Errors::HttpRequestError) && e.body != nil body = JSON.parse(e.body, symbolize_names: true) rescue {} params.merge!(body) end TransactionResponse.new(params) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
monri-0.3.0 | lib/monri/transactions/transaction_response.rb |
monri-0.2.0 | lib/monri/transactions/transaction_response.rb |