laravel-acquaintances icon indicating copy to clipboard operation
laravel-acquaintances copied to clipboard

Feature Request: Add Method to Query All Friendship Statuses

Open AlwaysShreeKrishna opened this issue 2 weeks ago • 2 comments

Hello,

I would like to request a new feature for the library to include a method that allows querying friendships without filtering by a specific status. The current implementation only allows querying by a specific status, which limits the flexibility of the querying capabilities. /** * Get the query builder of the 'friend' model * * @param string $groupSlug * * @return \Illuminate\Database\Eloquent\Builder */ public function getFriendsQueryBuilder($groupSlug = '') { $friendships = $this->findFriendships(Status::ACCEPTED, $groupSlug)->get(['sender_id', 'recipient_id']); $recipients = $friendships->pluck('recipient_id')->all(); $senders = $friendships->pluck('sender_id')->all();

    return $this->where('id', '!=', $this->getKey())
                ->whereIn('id', array_merge($recipients, $senders));
}

Proposed Solution: Here is an example of how the new method can be implemented: /** * Get the query builder of the 'friend' model * * @param string $status * @param string $groupSlug * * @return \Illuminate\Database\Eloquent\Builder */ public function getFriendsQueryBuilder(status = Status::ACCEPTED,$groupSlug = '') { $friendships = $this->findFriendships($status, $groupSlug)->get(['sender_id', 'recipient_id']); $recipients = $friendships->pluck('recipient_id')->all(); $senders = $friendships->pluck('sender_id')->all();

    return $this->where('id', '!=', $this->getKey())
                ->whereIn('id', array_merge($recipients, $senders));
}

AlwaysShreeKrishna avatar Jun 17 '24 10:06 AlwaysShreeKrishna