Table name: message_receipts
id :integer not null, primary key message_id :integer user_id :integer chat_conversation_id :integer read :boolean default(FALSE) sent :boolean default(FALSE) created_at :datetime updated_at :datetime university_id :integer
Returns message as json object with unread conversation type.
# File app/models/message_receipt.rb, line 43 def message_as_json message.as_json.merge(unread_conversations_count: user.cached_message_count) end
It is used to send message, if user is online it will trigger pusher event else it will send email.
# File app/models/message_receipt.rb, line 31 def trigger_pusher_event user.update_columns(cached_message_count: user.unread_conversations.count) if user.online? ActsAsTenant.current_tenant.pusher_configuration.client.trigger_async( "private-user-#{user_id}", (sent? ? 'message-sent' : 'message-received'), message_as_json) user.chat_activities.find_or_create_by(chat_conversation: chat_conversation) else ContactMailer.delay(queue: :mailer).offline_chat(self.message, user) end end