laravel-acquaintances
laravel-acquaintances copied to clipboard
Feature Request: Add Method to Query All Friendship Statuses
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));
}