class Chat

Public Instance Methods

broadcast_self() click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 29
def broadcast_self
  ActionCable.server.broadcast "ChatChannel_#{self.id}", {chat: messages_array.last }
end
latest_message() click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 21
def latest_message
  messages_array.last
end
messages_array() click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 7
def messages_array
  y = messages.map do |x|
    u = User.find(x.sender_id)
    h = x.serializable_hash
    # h["status"] = x.status(user_id)
    h["chat_id"] = id.to_s
    h["image"] = u.name? ? u.avatar_url(50) : "/assets/default.png"
    h['username'] = u.name || "An Amazing Person~"
    h["user_time"] = x.user_time
    h
  end
  y.sort_by{|x|x["created_at"]}
end
not_answered(user_id) click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 37
def not_answered(user_id)
  if !messages.blank?
    return messages.last.sender_id != user_id
  else
    return false
  end
end
unread_messages(user_id) click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 25
def unread_messages(user_id)
  message_statuses.where(user_id: user_id.to_i, read: false).count
end
users() click to toggle source
# File lib/generators/kablam/templates/chat.rb, line 33
def users
  messages.map{ |m| m.sender_id}.uniq
end