module ChatService

Public Instance Methods

create_message(chat, content, user) click to toggle source
# File lib/templates/chat/chat_service.rb, line 3
def create_message(chat, content, user)
  message = user.messages.create!(chat: chat, content: content)
  chat.messages << message
  chat.save!
  broadcast_message(chat, message)
  message
end

Private Instance Methods

broadcast_message(chat, message) click to toggle source
# File lib/templates/chat/chat_service.rb, line 13
def broadcast_message(chat, message)
  message_data = form_message_data(message)
  ChatChannel.broadcast_to(chat, message_data)
end
form_message_data(message) click to toggle source
# File lib/templates/chat/chat_service.rb, line 18
def form_message_data(message)
  user = message.user
  {
    action: 'new_message',
    content: message.content,
    user: user.username,
    user_id: user.id,
    date: Time.zone.now.iso8601
  }
end