merodiro / Friendships by merodiro

A simple package for friendships
9,674
45
0
Package Data
Maintainer Username: merodiro
Maintainer Contact: merodiro@gmail.com (Amr)
Package Create Date: 2017-05-08
Package Last Update: 2020-12-09
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-29 15:07:18
Package Statistics
Total Downloads: 9,674
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 45
Total Watchers: 0
Total Forks: 3
Total Open Issues: 1

Laravel 5 Friendships

Latest Version on Packagist Software License Build Status Build status Coverage Status Quality Score Total Downloads

This package gives users the ability to manage their friendships.

Models can:

  • Send Friend Requests
  • Accept Friend Requests
  • Deny Friend Requests
  • Delete Friend

Installation

First, install the package through Composer.

composer require merodiro/friendships

Then include the service provider inside config/app.php.

'providers' => [
    ...
    Merodiro\Friendships\FriendshipsServiceProvider::class,
    ...
];

Finally, migrate the database

php artisan migrate

Setup a Model

use Merodiro\Friendships\Friendable;
class User extends Model
{
    use Friendable;
    ...
}

How to use

Check the Test file to see the package in action

Send a Friend Request

$user->addFriend($recipient);

Accept a Friend Request

$user->acceptFriend($sender);

Deny a Friend Request

$user->deleteFriend($sender);

Remove Friend

$user->deleteFriend($friend);

Mutual Friends

$user->mutualFriends($anotherUser);

check the current relationship between two users

$user->checkFriendship($anotherUser);

it returns

  • same_user => if the $user is checking his own account
  • friends => if they are friends
  • waiting => if $user sent a request waiting for approval from $anotherUser
  • pending => if $anotherUser user sent a request waiting for approval from $user
  • not_friends => if they are not friends

Check if two users are friends

$user->isFriendsWith($anotherUser);

it returns true if they are friends and false if they aren't

Friends

To get a collection of users use the following methods:

Get Friends

$user->friends();

Get a list of users that $user has received friend requests from

$user->friendRequestsReceived();

Get a list of users that $user has sent friend requests to

$user->friendRequestsSent();

Events

This is the list of the events fired by default for each action

|Event name |Fired | |:--------------------:|:-------------------------------:| |friendrequest.sent |When a friend request is sent | |friendrequest.accepted|When a friend request is accepted| |friendship.deleted |When a friend request is denied | |friendship.deleted |When a friendship is deleted |

for more about how to use the events Check this example

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security-related issues, please email merodiro@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.