2016-04-15 21:56:10 +00:00
|
|
|
class Transaction
|
2016-09-06 05:51:12 +00:00
|
|
|
def self.execute(options = {})
|
|
|
|
if options[:reset_user_id] == true
|
|
|
|
UserInfo.current_user_id = 1
|
|
|
|
end
|
|
|
|
original_interface_handle = ApplicationHandleInfo.current
|
|
|
|
if options[:interface_handle]
|
|
|
|
ApplicationHandleInfo.current = options[:interface_handle]
|
|
|
|
end
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
PushMessages.init
|
|
|
|
yield
|
|
|
|
if options[:interface_handle]
|
|
|
|
ApplicationHandleInfo.current = original_interface_handle
|
|
|
|
end
|
2016-11-18 07:25:07 +00:00
|
|
|
Observer::Transaction.commit(
|
|
|
|
disable_notification: options[:disable_notification],
|
|
|
|
disable: options[:disable],
|
|
|
|
)
|
2016-09-06 05:51:12 +00:00
|
|
|
PushMessages.finish
|
|
|
|
end
|
|
|
|
end
|
2016-04-15 21:56:10 +00:00
|
|
|
end
|