Browse Source

Improved error handling.

Martin Edenhofer 7 years ago
parent
commit
78a8e90cbb
1 changed files with 12 additions and 8 deletions
  1. 12 8
      db/migrate/20170516000001_trigger_recipient_update.rb

+ 12 - 8
db/migrate/20170516000001_trigger_recipient_update.rb

@@ -5,14 +5,18 @@ class TriggerRecipientUpdate < ActiveRecord::Migration
     return if !Setting.find_by(name: 'system_init_done')
 
     ['auto reply (on new tickets)', 'auto reply (on follow up of tickets)'].each { |name|
-      trigger = Trigger.find_by(name: name)
-      next if !trigger
-      next if !trigger.perform
-      next if !trigger.perform['notification.email']
-      next if !trigger.perform['notification.email']['recipient']
-      next if trigger.perform['notification.email']['recipient'] != 'ticket_customer'
-      trigger.perform['notification.email']['recipient'] = 'article_last_sender'
-      trigger.save
+      begin
+        trigger = Trigger.find_by(name: name)
+        next if trigger.blank?
+        next if trigger.perform.blank?
+        next if trigger.perform['notification.email'].blank?
+        next if trigger.perform['notification.email']['recipient'].blank?
+        next if trigger.perform['notification.email']['recipient'] != 'ticket_customer'
+        trigger.perform['notification.email']['recipient'] = 'article_last_sender'
+        trigger.save!
+      rescue => e
+        Rails.logger.error "Unable to update Trigger.find(#{trigger.id}) '#{trigger.inspect}': #{e.message}"
+      end
     }
 
   end