module Schleuder::LoggerNotifications
Public Instance Methods
adminaddresses()
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 3 def adminaddresses @adminaddresses.presence || superadmin end
error(string)
click to toggle source
Calls superclass method
# File lib/schleuder/logger_notifications.rb, line 11 def error(string) super(string) notify_admin(string) end
fatal(string, original_message=nil)
click to toggle source
Calls superclass method
# File lib/schleuder/logger_notifications.rb, line 16 def fatal(string, original_message=nil) super(string.to_s + append_original_message(original_message)) notify_admin(string, original_message) end
notify_admin(thing, original_message=nil, subject='Error', recipients=nil)
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 25 def notify_admin(thing, original_message=nil, subject='Error', recipients=nil) # Minimize using other classes here, we don't know what caused the error. msg_parts = convert_to_msg_parts(thing, original_message) recipients ||= adminaddresses Array(adminaddresses).each do |address, key| mail = Mail.new mail.from = @from mail.to = address mail.subject = subject mail[:Errors_To] = superadmin mail.sender = superadmin msg_parts.each do |msg_part| mail.add_part(msg_part) end if @list.present? gpg_opts = @list.gpg_sign_options if key.present? && key.usable? gpg_opts.merge!(encrypt: true, keys: { address => key.fingerprint }) end mail.gpg gpg_opts mail.header['List-Id'] = "<#{@list.email.gsub('@', '.')}>" end mail.deliver end true end
notify_superadmin(message:, original_message: nil, subject: 'Error')
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 21 def notify_superadmin(message:, original_message: nil, subject: 'Error') notify_admin(message, original_message, subject, superadmin) end
superadmin()
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 7 def superadmin Conf.superadmin.presence end
Private Instance Methods
append_original_message(original_message)
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 67 def append_original_message(original_message) if original_message "\n\nOriginal message:\n\n#{original_message.to_s}" else '' end end
convert_to_msg_parts(thing, original_message)
click to toggle source
# File lib/schleuder/logger_notifications.rb, line 55 def convert_to_msg_parts(thing, original_message) msg_parts = Mail::Message.all_to_message_part(thing) if original_message.present? orig_part = Mail::Part.new orig_part.content_type = 'message/rfc822' orig_part.content_description = 'The originally incoming message' orig_part.body = original_message.to_s msg_parts << orig_part end msg_parts end