Class: UserMessage
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- UserMessage
- Includes:
- Toggleable
- Defined in:
- app/models/user_message.rb
Constant Summary collapse
- PER_PAGE =
20
Class Method Summary collapse
- .creation_parameters ⇒ Object
- .dialog_page(user, other_user, page) ⇒ Object
- .entity_parameters ⇒ Object
- .page_for_administration(page, filter = {}) ⇒ Object
- .page_for_owner(user, page) ⇒ Object
Instance Method Summary collapse
- #destroy_by_user(user) ⇒ Object
- #receiver?(user) ⇒ Boolean
- #sender?(user) ⇒ Boolean
- #visible_to?(user) ⇒ Boolean
Class Method Details
.creation_parameters ⇒ Object
51 52 53 |
# File 'app/models/user_message.rb', line 51 def self.creation_parameters entity_parameters + %i(receiver_id) end |
.dialog_page(user, other_user, page) ⇒ Object
39 40 41 42 43 44 45 |
# File 'app/models/user_message.rb', line 39 def self.dialog_page(user, other_user, page) clause = 'sender_id = ? and receiver_id = ?' as_sender = "(#{clause} and deleted_by_sender = false)" as_receiver = "(#{clause} and deleted_by_receiver = false)" where("#{as_sender} or #{as_receiver}", user, other_user, other_user, user). recent.page(page).per(PER_PAGE) end |
.entity_parameters ⇒ Object
47 48 49 |
# File 'app/models/user_message.rb', line 47 def self.entity_parameters %i(body) end |
.page_for_administration(page, filter = {}) ⇒ Object
26 27 28 |
# File 'app/models/user_message.rb', line 26 def self.page_for_administration(page, filter = {}) filtered(filter).recent.page(page).per(PER_PAGE) end |
.page_for_owner(user, page) ⇒ Object
32 33 34 |
# File 'app/models/user_message.rb', line 32 def self.page_for_owner(user, page) visible_to_user(user).recent.page(page).per(PER_PAGE) end |
Instance Method Details
#destroy_by_user(user) ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'app/models/user_message.rb', line 56 def destroy_by_user(user) if sender?(user) update(deleted_by_sender: true) receiver.slug elsif receiver?(user) update(deleted_by_receiver: true) sender.slug end end |
#receiver?(user) ⇒ Boolean
83 84 85 |
# File 'app/models/user_message.rb', line 83 def receiver?(user) user == receiver end |
#sender?(user) ⇒ Boolean
78 79 80 |
# File 'app/models/user_message.rb', line 78 def sender?(user) user == sender end |
#visible_to?(user) ⇒ Boolean
67 68 69 70 71 72 73 74 75 |
# File 'app/models/user_message.rb', line 67 def visible_to?(user) if sender?(user) !deleted_by_sender? elsif receiver?(user) !deleted_by_receiver? else false end end |