public function conversationRead($conversationId, $userId) { return MessageNotification::where('user_id', $userId)->where('conversation_id', $conversationId)->update(['is_seen' => 1]); }
/** * Get recent user messages for each conversation * * @param int $userId * * @return Message */ public function conversations($userId) { $c = ConversationUser::join('messages', 'messages.conversation_id', '=', 'conversation_user.conversation_id')->where('conversation_user.user_id', $userId)->groupBy('messages.conversation_id')->orderBy('messages.id', 'DESC')->get(['messages.*', 'messages.id as message_id', 'conversation_user.*']); $messages = []; foreach ($c as $user) { $recent_message = $user->conversation->messages()->orderBy('id', 'desc')->first()->toArray(); $notification = MessageNotification::where('user_id', $userId)->where('message_id', $user->id)->get(['message_notification.id', 'message_notification.is_seen', 'message_notification.is_sender']); $messages[] = array_merge($recent_message, ['notification' => $notification]); } return $messages; }
/** * marks message as read * * @param integer $messageId * @param integer $userId * * @return */ public function messageRead($messageId, $userId) { return MessageNotification::where('user_id', $userId)->where('message_id', $messageId)->update(['is_seen' => 1]); }