This catches exceptions that can happen when an authentication is expired or removed by the user on google's side.
21 lines
707 B
Ruby
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
|