class Qualtrics::Transaction

Constants

COMMANDS_TO_TRACK

Public Class Methods

new() click to toggle source
# File lib/qualtrics/transaction.rb, line 37
def initialize
  @op_stack = {}
end

Public Instance Methods

entity_id(response) click to toggle source
# File lib/qualtrics/transaction.rb, line 50
def entity_id(response)
  response.result["#{operation.entity_name}ID"]
end
push(operation, response) click to toggle source
# File lib/qualtrics/transaction.rb, line 45
def push(operation, response)
  @op_stack[operation.entity_name] ||= []
  @op_stack[operation.entity_name] << TransactionRecord.new(operation, response.result)
end
received_response(operation, response) click to toggle source
# File lib/qualtrics/transaction.rb, line 41
def received_response(operation, response)
  push(operation, response) if queue?(operation, response)
end
rollback!() click to toggle source
# File lib/qualtrics/transaction.rb, line 54
def rollback!
  @op_stack.each do |entity_type, transaction_records|
    while rec = transaction_records.shift do
      if rec.has_inverse?
        rec.issue_inverse_request
      end
    end
  end
end

Protected Instance Methods

queue?(operation, response) click to toggle source
# File lib/qualtrics/transaction.rb, line 66
def queue?(operation, response)
  response.success? && !response.result.nil? && COMMANDS_TO_TRACK.include?(operation.command)
end