tinyforms/app/jobs/submission_append_job.rb
Michael Bumann 94966a9933 Handle authentication errors when appending data
This catches exceptions that can happen when an authentication is expired
or removed by the user on google's side.
2020-04-09 11:51:54 +02:00

21 lines
707 B
Ruby

class SubmissionAppendJob < ApplicationJob
queue_as :default
rescue_from(Signet::AuthorizationError, Google::Apis::AuthorizationError) do |exception|
submission_id = self.arguments.first
Rails.logger.error("AuthorizationError during SubmissionAppend: submission_id=#{submission_id}")
submission = Submission.find(submission_id)
submission.form.deactivate!('AuthorizationError')
end
def perform(*args)
submission_id = args.first
submission = Submission.find(submission_id)
if submission.form.active?
submission.append_to_spreadsheet
else
Rails.logger.error("Inactive form: submission_id=#{submission_id} form_id=#{submission.form_id}")
end
end
end