2015-01-12 06:20:19 +00:00
include Devise :: Models
module JamRuby
class TextMessage < ActiveRecord :: Base
self . primary_key = 'id'
default_scope order ( 'created_at DESC' )
attr_accessible :target_user_id , :source_user_id , :message
belongs_to :target_user , :class_name = > " JamRuby::User " , :foreign_key = > " target_user_id "
belongs_to :source_user , :class_name = > " JamRuby::User " , :foreign_key = > " source_user_id "
validates :message , length : { minimum : 1 , maximum : 400 } , no_profanity : true
def self . index ( target_user_id , source_user_id , options = { } )
offset = options [ :offset ]
limit = options [ :limit ]
# if not specified, default offset to 0
offset || = 0
offset = offset . to_i
# if not specified, default limit to 10
limit || = 10
limit = limit . to_i
TextMessage
. offset ( offset )
. limit ( limit )
. where ( '(source_user_id = (?) AND target_user_id = (?)) OR (source_user_id = (?) AND target_user_id = (?))' , source_user_id , target_user_id , target_user_id , source_user_id )
end
2015-01-12 06:26:27 +00:00
def self . create ( message , target_user_id , source_user_id )
sanitized_text = Sanitize . fragment ( message , elements : HtmlSanitize :: SAFE )
# create new message
tm = TextMessage . new
tm . message = sanitized_text
tm . target_user_id = target_user_id
tm . source_user_id = source_user_id
2015-01-13 03:37:07 +00:00
tm . save
2015-01-12 06:26:27 +00:00
# send notification
2015-01-13 03:37:07 +00:00
@notification = Notification . send_text_message ( sanitized_text , User . find ( source_user_id ) , User . find ( target_user_id ) )
2015-01-12 06:26:27 +00:00
tm
end
2015-01-12 06:20:19 +00:00
end
end