From 50f70c5f170c536789df7b10246c4edf4655c99f Mon Sep 17 00:00:00 2001 From: Ahmed Thyab Date: Mon, 24 Jun 2024 20:46:41 +0300 Subject: [PATCH] unread messages count --- src/Http/Controllers/API/DiscussionsController.php | 8 ++++++-- src/Services/DiscussionService.php | 5 ++--- src/routes/api.php | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Http/Controllers/API/DiscussionsController.php b/src/Http/Controllers/API/DiscussionsController.php index d6f9a9a..72756e8 100644 --- a/src/Http/Controllers/API/DiscussionsController.php +++ b/src/Http/Controllers/API/DiscussionsController.php @@ -80,10 +80,14 @@ public function deleteConversation(Request $request, Discussion $discussion) } } - public function discussionsCountForUnReadMessages(Request $request) + /** + * @param Request $request + * @return mixed + */ + public function unreadMessagesCount(Request $request) { try { - return apiResponse($this->discussionService->discussionsCountForUnReadMessages()); + return apiResponse($this->discussionService->unreadMessagesCount()); } catch (\Exception $e) { return apiExceptionResponse($e); } diff --git a/src/Services/DiscussionService.php b/src/Services/DiscussionService.php index 1ba9341..b050f7c 100644 --- a/src/Services/DiscussionService.php +++ b/src/Services/DiscussionService.php @@ -40,11 +40,10 @@ public function deleteConversation(Discussion $discussion) /** * @return int */ - public function discussionsCountForUnReadMessages() + public function unreadMessagesCount(): int { return Discussion::query() ->forUser(user()) - ->where('messaging_participations.unread_counts', '>', 0) - ->count(); + ->sum('messaging_participations.unread_counts'); } } diff --git a/src/routes/api.php b/src/routes/api.php index 973c042..ce29578 100644 --- a/src/routes/api.php +++ b/src/routes/api.php @@ -8,7 +8,7 @@ }); Route::post('discussions/{discussion}/mark-as-read', 'DiscussionsController@markAsRead'); -Route::get('discussions/un-read-messages', 'DiscussionsController@discussionsCountForUnReadMessages'); +Route::get('discussions/un-read-messages', 'DiscussionsController@unreadMessagesCount'); Route::post('discussions/{discussion}/delete-conversation', 'DiscussionsController@deleteConversation');