From ce4e6f4aa46301a304d666fe5c4ef04b91e3825c Mon Sep 17 00:00:00 2001 From: Tinashe Musonza Date: Mon, 8 Apr 2019 20:26:07 -0400 Subject: [PATCH] add another function to replace 'for' as setUser (#136) * add another function to replace 'for' as setUser --- README.md | 28 +++++++++++------------ src/Traits/SetsParticipants.php | 17 +++++++++++++- tests/Unit/ConversationTest.php | 28 +++++++++++------------ tests/Unit/MessageTest.php | 38 ++++++++++++++++---------------- tests/Unit/NotificationsTest.php | 10 ++++----- 5 files changed, 67 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index c8e65ae..582969b 100644 --- a/README.md +++ b/README.md @@ -174,45 +174,45 @@ $message = Chat::messages()->getById($id); #### Mark a message as read ```php -Chat::message($message)->for($user)->markRead(); +Chat::message($message)->setUser($user)->markRead(); ``` #### Flag / mark a message ```php -Chat::message($message)->for($user)->toggleFlag(); +Chat::message($message)->setUser($user)->toggleFlag(); -Chat::message($message)->for($user)->flagged(); // true +Chat::message($message)->setUser($user)->flagged(); // true ``` #### Mark whole conversation as read ```php -Chat::conversation($conversation)->for($user)->readAll(); +Chat::conversation($conversation)->setUser($user)->readAll(); ``` #### Unread messages count ```php -$unreadCount = Chat::messages()->for($user)->unreadCount(); +$unreadCount = Chat::messages()->setUser($user)->unreadCount(); ``` #### Unread messages count per Conversation ```php -Chat::conversation($conversation)->for($user)->unreadCount(); +Chat::conversation($conversation)->setUser($user)->unreadCount(); ``` #### Delete a message ```php -Chat::message($message)->for($user)->delete(); +Chat::message($message)->setUser($user)->delete(); ``` #### Clear a conversation ```php -Chat::conversation($conversation)->for($user)->clear(); +Chat::conversation($conversation)->setUser($user)->clear(); ``` #### Get a conversation between two users @@ -258,26 +258,26 @@ Chat::conversation($conversation)->addParticipants([$user3, $user4]); #### Get messages in a conversation ```php -Chat::conversation($conversation)->for($user)->getMessages() +Chat::conversation($conversation)->setUser($user)->getMessages() ``` #### Get user conversations by type ```php // private conversations -$conversations = Chat::conversations()->for($user)->isPrivate()->get(); +$conversations = Chat::conversations()->setUser($user)->isPrivate()->get(); // public conversations -$conversations = Chat::conversations()->for($user)->isPrivate(false)->get(); +$conversations = Chat::conversations()->setUser($user)->isPrivate(false)->get(); // all conversations -$conversations = Chat::conversations()->for($user)->get(); +$conversations = Chat::conversations()->setUser($user)->get(); ``` #### Get recent messages ```php -$messages = Chat::conversations()->for($user)->limit(25)->page(1)->get(); +$messages = Chat::conversations()->setUser($user)->limit(25)->page(1)->get(); ``` Example @@ -316,7 +316,7 @@ Example There are a few ways you can achieve pagination You can specify the `limit` and `page` as above using the respective functions or as below: ``` - $paginated = Chat::conversations()->for($user) + $paginated = Chat::conversations()->setUser($user) ->setPaginationParams([ 'page' => 3, 'perPage' => 10, diff --git a/src/Traits/SetsParticipants.php b/src/Traits/SetsParticipants.php index e8324bc..a7e8a67 100644 --- a/src/Traits/SetsParticipants.php +++ b/src/Traits/SetsParticipants.php @@ -15,7 +15,22 @@ trait SetsParticipants * * @return $this */ - function for ($user) { + public function for($user) + { + $this->user = $user; + + return $this; + } + + /** + * Sets user. + * + * @param object $user + * + * @return $this + */ + public function setUser($user) + { $this->user = $user; return $this; diff --git a/tests/Unit/ConversationTest.php b/tests/Unit/ConversationTest.php index 0840eac..037d6d2 100644 --- a/tests/Unit/ConversationTest.php +++ b/tests/Unit/ConversationTest.php @@ -36,7 +36,7 @@ public function it_can_mark_a_conversation_as_read() Chat::message('Hello there 0')->from($this->users[1])->to($conversation)->send(); Chat::message('Hello there 0')->from($this->users[1])->to($conversation)->send(); - Chat::conversation($conversation)->for($this->users[0])->readAll(); + Chat::conversation($conversation)->setUser($this->users[0])->readAll(); $this->assertEquals(0, $conversation->unReadNotifications($this->users[0])->count()); } @@ -60,9 +60,9 @@ public function it_can_clear_a_conversation() Chat::message('Hello there 1')->from($this->users[0])->to($conversation)->send(); Chat::message('Hello there 2')->from($this->users[0])->to($conversation)->send(); - Chat::conversation($conversation)->for($this->users[0])->clear(); + Chat::conversation($conversation)->setUser($this->users[0])->clear(); - $messages = Chat::conversation($conversation)->for($this->users[0])->getMessages(); + $messages = Chat::conversation($conversation)->setUser($this->users[0])->getMessages(); $this->assertEquals($messages->count(), 0); } @@ -192,9 +192,9 @@ public function it_returns_last_message_as_null_when_the_very_last_message_was_d { $conversation = Chat::createConversation([$this->users[0]->getKey(), $this->users[1]->getKey()]); $message = Chat::message('Hello & Bye')->from($this->users[0])->to($conversation)->send(); - Chat::message($message)->for($this->users[0])->delete(); + Chat::message($message)->setUser($this->users[0])->delete(); - $conversations = Chat::conversations()->for($this->users[0])->get(); + $conversations = Chat::conversations()->setUser($this->users[0])->get(); $this->assertNull($conversations->get(0)->last_message); } @@ -205,11 +205,11 @@ public function it_returns_correct_attributes_in_last_message() $conversation = Chat::createConversation([$this->users[0]->getKey(), $this->users[1]->getKey()]); Chat::message('Hello')->from($this->users[0])->to($conversation)->send(); - $conversations = Chat::conversations()->for($this->users[0])->get(); + $conversations = Chat::conversations()->setUser($this->users[0])->get(); $this->assertTrue((bool) $conversations->get(0)->last_message->is_seen); - $conversations = Chat::conversations()->for($this->users[1])->get(); + $conversations = Chat::conversations()->setUser($this->users[1])->get(); $this->assertFalse((bool) $conversations->get(0)->last_message->is_seen); } @@ -228,15 +228,14 @@ public function it_returns_the_correct_order_of_conversations_when_updated_at_is $conversation = Chat::createConversation([$auth->getKey(), $this->users[3]->getKey()]); Chat::message('Hello-' . $conversation->id)->from($auth)->to($conversation)->send(); - $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->for($auth)->limit(1)->page(1)->get(); + $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->setUser($auth)->limit(1)->page(1)->get(); $this->assertEquals('Hello-3', $conversations->items()[0]->last_message->body); - $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->for($auth)->limit(1)->page(2)->get(); + $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->setUser($auth)->limit(1)->page(2)->get(); $this->assertEquals('Hello-2', $conversations->items()[0]->last_message->body); - $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->for($auth)->limit(1)->page(3)->get(); + $conversations = Chat::conversations()->setPaginationParams(['sorting' => 'desc'])->setUser($auth)->limit(1)->page(3)->get(); $this->assertEquals('Hello-1', $conversations->items()[0]->last_message->body); - } /** @test */ @@ -296,14 +295,13 @@ public function it_filters_conversations_by_type() Chat::createConversation([$this->users[0]->getKey(), $this->users[1]->getKey()])->makePrivate(false); Chat::createConversation([$this->users[0]->getKey(), $this->users[1]->getKey()])->makePrivate(); - $allConversations = Chat::conversations()->for($this->users[0])->get(); + $allConversations = Chat::conversations()->setUser($this->users[0])->get(); $this->assertCount(3, $allConversations); - $privateConversations = Chat::conversations()->for($this->users[0])->isPrivate()->get(); + $privateConversations = Chat::conversations()->setUser($this->users[0])->isPrivate()->get(); $this->assertCount(2, $privateConversations); - $publicConversations = Chat::conversations()->for($this->users[0])->isPrivate(false)->get(); + $publicConversations = Chat::conversations()->setUser($this->users[0])->isPrivate(false)->get(); $this->assertCount(1, $publicConversations); } - } diff --git a/tests/Unit/MessageTest.php b/tests/Unit/MessageTest.php index 0e245b5..0cc070a 100644 --- a/tests/Unit/MessageTest.php +++ b/tests/Unit/MessageTest.php @@ -62,7 +62,7 @@ public function it_can_mark_a_message_as_read() ->to($conversation) ->send(); - Chat::message($message)->for($this->users[0])->markRead(); + Chat::message($message)->setUser($this->users[0])->markRead(); $this->assertNotNull($message->getNotification($this->users[0])->read_at); } @@ -77,9 +77,9 @@ public function it_can_delete_a_message() $perPage = 5; $page = 1; - Chat::message($message)->for($this->users[1])->delete(); + Chat::message($message)->setUser($this->users[1])->delete(); - $messages = Chat::conversation($conversation)->for($this->users[1])->getMessages($perPage, $page); + $messages = Chat::conversation($conversation)->setUser($this->users[1])->getMessages($perPage, $page); $this->assertEquals(0, $messages->count()); } @@ -94,10 +94,10 @@ public function it_can_list_deleted_messages() $perPage = 5; $page = 1; - Chat::message($message)->for($this->users[1])->delete(); + Chat::message($message)->setUser($this->users[1])->delete(); $messages = Chat::conversation($conversation) - ->for($this->users[1]) + ->setUser($this->users[1]) ->deleted() ->getMessages($perPage, $page); @@ -127,10 +127,10 @@ public function it_can_return_paginated_messages_in_a_conversation() Chat::message('Hello Man')->from($this->users[1])->to($conversation)->send(); $this->assertEquals($conversation->messages->count(), 7); - $this->assertEquals(3, Chat::conversation($conversation)->for($this->users[0])->perPage(3)->getMessages()->count()); - $this->assertEquals(3, Chat::conversation($conversation)->for($this->users[0])->perPage(3)->page(2)->getMessages()->count()); - $this->assertEquals(1, Chat::conversation($conversation)->for($this->users[0])->perPage(3)->page(3)->getMessages()->count()); - $this->assertEquals(0, Chat::conversation($conversation)->for($this->users[0])->perPage(3)->page(4)->getMessages()->count()); + $this->assertEquals(3, Chat::conversation($conversation)->setUser($this->users[0])->perPage(3)->getMessages()->count()); + $this->assertEquals(3, Chat::conversation($conversation)->setUser($this->users[0])->perPage(3)->page(2)->getMessages()->count()); + $this->assertEquals(1, Chat::conversation($conversation)->setUser($this->users[0])->perPage(3)->page(3)->getMessages()->count()); + $this->assertEquals(0, Chat::conversation($conversation)->setUser($this->users[0])->perPage(3)->page(4)->getMessages()->count()); } /** @test */ @@ -149,10 +149,10 @@ public function it_can_return_recent_user_messsages() Chat::message('Hello Man 3')->from($this->users[2])->to($conversation2)->send(); Chat::message('Hello Man 10')->from($this->users[0])->to($conversation2)->send(); - $recent_messages = Chat::conversations()->for($this->users[0])->limit(5)->page(1)->get(); + $recent_messages = Chat::conversations()->setUser($this->users[0])->limit(5)->page(1)->get(); $this->assertCount(3, $recent_messages); - $recent_messages = Chat::conversations()->for($this->users[0])->setPaginationParams([ + $recent_messages = Chat::conversations()->setUser($this->users[0])->setPaginationParams([ 'perPage' => 1, 'page' => 1, 'pageName' => 'test', @@ -170,12 +170,12 @@ public function it_return_unread_messages_count_for_user() Chat::message('Hello 2')->from($this->users[0])->to($conversation)->send(); $message = Chat::message('Hello 2')->from($this->users[0])->to($conversation)->send(); - $this->assertEquals(2, Chat::messages()->for($this->users[1])->unreadCount()); - $this->assertEquals(1, Chat::messages()->for($this->users[0])->unreadCount()); + $this->assertEquals(2, Chat::messages()->setUser($this->users[1])->unreadCount()); + $this->assertEquals(1, Chat::messages()->setUser($this->users[0])->unreadCount()); - Chat::message($message)->for($this->users[1])->markRead(); + Chat::message($message)->setUser($this->users[1])->markRead(); - $this->assertEquals(1, Chat::messages()->for($this->users[1])->unreadCount()); + $this->assertEquals(1, Chat::messages()->setUser($this->users[1])->unreadCount()); } /** @test */ @@ -198,10 +198,10 @@ public function it_flags_a_message() ->to($conversation) ->send(); - Chat::message($message)->for($this->users[1])->toggleFlag(); - $this->assertTrue(Chat::message($message)->for($this->users[1])->flagged()); + Chat::message($message)->setUser($this->users[1])->toggleFlag(); + $this->assertTrue(Chat::message($message)->setUser($this->users[1])->flagged()); - Chat::message($message)->for($this->users[1])->toggleFlag(); - $this->assertFalse(Chat::message($message)->for($this->users[1])->flagged()); + Chat::message($message)->setUser($this->users[1])->toggleFlag(); + $this->assertFalse(Chat::message($message)->setUser($this->users[1])->flagged()); } } diff --git a/tests/Unit/NotificationsTest.php b/tests/Unit/NotificationsTest.php index 95f9aeb..3ed764d 100644 --- a/tests/Unit/NotificationsTest.php +++ b/tests/Unit/NotificationsTest.php @@ -50,12 +50,12 @@ public function it_gets_unread_notifications_per_conversation() $conversation2 = Chat::createConversation([$this->users[2]->getKey(), $this->users[0]->getKey()]); Chat::message('Hello 3')->from($this->users[2])->to($conversation2)->send(); - $this->assertEquals(3, Chat::messages()->for($this->users[0])->unreadCount()); - $this->assertEquals(2, Chat::conversation($conversation1)->for($this->users[0])->unreadCount()); - $this->assertEquals(1, Chat::conversation($conversation2)->for($this->users[0])->unreadCount()); + $this->assertEquals(3, Chat::messages()->setUser($this->users[0])->unreadCount()); + $this->assertEquals(2, Chat::conversation($conversation1)->setUser($this->users[0])->unreadCount()); + $this->assertEquals(1, Chat::conversation($conversation2)->setUser($this->users[0])->unreadCount()); //Read message from from convo - Chat::message($conversation1->messages()->first())->for($this->users[0])->markRead(); - $this->assertEquals(2, Chat::messages()->for($this->users[0])->unreadCount()); + Chat::message($conversation1->messages()->first())->setUser($this->users[0])->markRead(); + $this->assertEquals(2, Chat::messages()->setUser($this->users[0])->unreadCount()); } }