Sha256: ffd00911b9b35eceb6200f3607fae9484ef0ccac88fde72db5f9b7b2b0418017

Contents?: true

Size: 887 Bytes

Versions: 8

Compression:

Stored size: 887 Bytes

Contents

class MessageThread < ActiveRecord::Base
  belongs_to :message
  belongs_to :parent_message, :class_name => 'Message'
  belongs_to :sender, :class_name => 'User', :foreign_key => "sender_id"
  belongs_to :recipient, :class_name => 'User', :foreign_key => "recipient_id"
  
  before_destroy :mark_messages_deleted
  
  def subject
    parent_message.subject
  end
  
  def creator_name
    parent_message.sender.eql?(recipient) ? 'Me' : parent_message.sender.login
  end
  
  def self.for(message, user)
    find(:first, :conditions => {:parent_message_id => (message.parent_id || message.id), :recipient_id => user.id})
  end
  
  def mark_messages_deleted
    parent_message.mark_deleted(recipient)
    parent_message.children.each do |child|
      child.mark_deleted(recipient)
    end
  end
  
  def read?
    message.recipient.eql?(recipient) ? message.read? : 'read'
  end
  
  
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
community_engine-2.3.2 app/models/message_thread.rb
community_engine-2.3.1 app/models/message_thread.rb
community_engine-2.3.0 app/models/message_thread.rb
community_engine-2.1.0 app/models/message_thread.rb
community_engine-2.0.0 app/models/message_thread.rb
community_engine-2.0.0.beta3 app/models/message_thread.rb
community_engine-2.0.0.beta2 app/models/message_thread.rb
community_engine-2.0.0.beta1 app/models/message_thread.rb