Module: ActsAsChattable::Model::InstanceMethods
- Defined in:
- lib/acts_as_chattable/model.rb
Instance Method Summary collapse
-
#delete_message(message) ⇒ Object
Mark message as deleted.
-
#deleted_messages ⇒ ActiveRecord::Relation
Returns all messages from trash.
-
#messages(trash = false) ⇒ ActiveRecord::Relation
All messages connected with user.
- #messages_with(friend) ⇒ Object
-
#received_messages ⇒ ActiveRecord::Relation
Returns all messages from inbox.
-
#restore_message(message) ⇒ Object
Mark message as restored.
-
#send_message(to, *args) ⇒ ActsAsChattable::Message
Method sens message to another user.
-
#send_message!(to, *args) ⇒ ActsAsChattable::Message
Method send message to another user and raise exception in case of validation errors.
-
#sent_messages ⇒ ActiveRecord::Relation
Returns all messages from outbox.
Instance Method Details
#delete_message(message) ⇒ Object
Mark message as deleted
135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/acts_as_chattable/model.rb', line 135 def () current_user = self case current_user when .to attribute = .recipient_delete ? :recipient_permanent_delete : :recipient_delete when .from attribute = .sender_delete ? :sender_permanent_delete : :sender_delete else raise "#{current_user} can't delete this message" end .update_attributes!(attribute => true) end |
#deleted_messages ⇒ ActiveRecord::Relation
Returns all messages from trash
93 94 95 |
# File 'lib/acts_as_chattable/model.rb', line 93 def true end |
#messages(trash = false) ⇒ ActiveRecord::Relation
Returns all messages connected with user.
60 61 62 63 64 65 |
# File 'lib/acts_as_chattable/model.rb', line 60 def (trash = false) result = self.class..connected_with(self, trash) result.relation_context = self result end |
#messages_with(friend) ⇒ Object
67 68 69 70 71 72 |
# File 'lib/acts_as_chattable/model.rb', line 67 def (friend) ActsAsChattable::Message.where("(received_messageable_id = #{self.id} AND sent_messageable_id = #{friend.id}) OR (sent_messageable_id = #{self.id} AND received_messageable_id = #{friend.id})") .order('id DESC') end |
#received_messages ⇒ ActiveRecord::Relation
Returns all messages from inbox
75 76 77 78 79 80 81 |
# File 'lib/acts_as_chattable/model.rb', line 75 def result = ActsAsChattable.rails_api.new() result = result.scoped.where(:recipient_delete => false) result.relation_context = self result end |
#restore_message(message) ⇒ Object
Mark message as restored
151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/acts_as_chattable/model.rb', line 151 def () current_user = self case current_user when .to attribute = :recipient_delete when .from attribute = :sender_delete else raise "#{current_user} can't restore this message" end .update_attributes!(attribute => false) end |
#send_message(to, *args) ⇒ ActsAsChattable::Message
Method sens message to another user
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/acts_as_chattable/model.rb', line 103 def (to, *args) = {} case args.first when String self.class..required.each_with_index do |attribute, index| [attribute] = args[index] end when Hash = args.first end = self.class..new . = to . = self .save end |
#send_message!(to, *args) ⇒ ActsAsChattable::Message
Method send message to another user and raise exception in case of validation errors
130 131 132 |
# File 'lib/acts_as_chattable/model.rb', line 130 def (to, *args) (to, *args).save! end |
#sent_messages ⇒ ActiveRecord::Relation
Returns all messages from outbox
84 85 86 87 88 89 90 |
# File 'lib/acts_as_chattable/model.rb', line 84 def result = ActsAsChattable.rails_api.new() result = result.scoped.where(:sender_delete => false) result.relation_context = self result end |