Class: Qualtrics::Transaction

Inherits:
Object
  • Object
show all
Defined in:
lib/qualtrics/transaction.rb

Defined Under Namespace

Classes: TransactionRecord

Constant Summary collapse

COMMANDS_TO_TRACK =
['create']

Instance Method Summary collapse

Constructor Details

#initializeTransaction

Returns a new instance of Transaction.



37
38
39
# File 'lib/qualtrics/transaction.rb', line 37

def initialize
  @op_stack = {}
end

Instance Method Details

#entity_id(response) ⇒ Object



50
51
52
# File 'lib/qualtrics/transaction.rb', line 50

def entity_id(response)
  response.result["#{operation.entity_name}ID"]
end

#push(operation, response) ⇒ Object



45
46
47
48
# 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) ⇒ Object



41
42
43
# File 'lib/qualtrics/transaction.rb', line 41

def received_response(operation, response)
  push(operation, response) if queue?(operation, response)
end

#rollback!Object



54
55
56
57
58
59
60
61
62
# 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