summaryrefslogtreecommitdiff
path: root/app/models/message.rb
blob: 0634b6b49da8863de110193d010322454f527b0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Message < ActiveRecord::Base

  include MailerHelper

  belongs_to :user_sender, class_name: "User", foreign_key: "user_sender_id"
  belongs_to :user_target, class_name: "User", foreign_key: "user_target_id"

  validates_presence_of :user_sender, :user_target, :text, on: :create

  validates_length_of :text, in: 1..8000

  def sender
    @sender ||= if self.user_sender.present?
      user_sender
    else
      User.first
    end
  end

  def target
    @target ||= if self.user_target.present?
      user_target
    else
      User.first
    end
  end

  def send_new_message_mail
    begin
      mail = RedstonerMailer.new_message_mail(user_target, self)
    rescue => e
      Rails.logger.error "---"
      Rails.logger.error "WARNING: Failed to create new_message_mail (view) for message#: #{@message.id}, user: #{@user.name}, #{@user.email}"
      Rails.logger.error e.message
      Rails.logger.error "---"
    end
    background_mailer([mail])
  end
end