Sha256: 3848007c86e783d8b9621f58859b998ae55a933a9fffdce7ef0db55595d6f085

Contents?: true

Size: 1.34 KB

Versions: 5

Compression:

Stored size: 1.34 KB

Contents

# Processes Results
module K2ProcessResult
  def self.process(payload, secret_key, signature)
    raise ArgumentError, 'Empty/Nil Request Body Argument!' if payload.blank?
    self.check_type(payload) if K2Authenticator.authenticate(payload, secret_key, signature)
  end

  # Check the Event Type.
  def self.check_type(payload)
    result_type = payload.dig('data', 'type')
    case result_type
      # Incoming Payments
    when 'incoming_payment'
      incoming_payments = IncomingPayments.new(payload)
      return incoming_payments
      # Outgoing Payments
    when 'payment'
      outgoing_payments = OutgoingPayment.new(payload)
      return outgoing_payments
    when 'settlement_transfer'
      transfer = Transfer.new(payload)
      return transfer
    else
      raise ArgumentError, 'No Other Specified Payment Type!'
    end
  end

  # Returns a Hash Object
  def self.return_obj_hash(instance_hash = HashWithIndifferentAccess.new, obj)
    obj.instance_variables.each do |value|
      instance_hash[:"#{value.to_s.tr('@', '')}"] = obj.instance_variable_get(value)
    end
    instance_hash.each(&:freeze).freeze
  end

  # Returns an Array Object
  def self.return_obj_array(instance_array = [], obj)
    obj.instance_variables.each do |value|
      instance_array << obj.instance_variable_get(value)
    end
    instance_array.each(&:freeze).freeze
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
k2-connect-ruby-2.0.0 lib/k2-connect-ruby/k2_utilities/k2_process_result.rb
k2-connect-ruby-1.0.0 lib/k2-connect-ruby/k2_utilities/k2_process_result.rb
k2-connect-ruby-0.0.3 lib/k2-connect-ruby/k2_utilities/k2_process_result.rb
k2-connect-ruby-0.0.2 lib/k2-connect-ruby/k2_utilities/k2_process_result.rb
k2-connect-ruby-0.0.1 lib/k2-connect-ruby/k2_utilities/k2_process_result.rb