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

If the first friendship request is denied, then unlimited duplicate entries can appear in the friendship table

Open spinalwiz opened this issue 2 years ago • 3 comments

To recreate: Add a friend and then deny that friend request.

Re-add that friend multiple times and you will see multiple entries in the friendship table like this:

image

Cause: This is because \Multicaret\Acquaintances\Traits\Friendable::getFriendship() returns the first() match which will always be the entry with status == 'denied' which means \Multicaret\Acquaintances\Traits\Friendable::canBefriend() will always return true

Potential Fix: In \Multicaret\Acquaintances\Traits\Friendable::getFriendship() add an ->orderBy('created_at' , 'desc') (or updated_at) to get the most recent entry

Or if the intention is to have no duplicate entries in the friendship table then will need to change \Multicaret\Acquaintances\Traits\Friendable::befriend() to an upsert

spinalwiz avatar Mar 23 '22 09:03 spinalwiz

This was my initial observation while using this package. I am overcoming this by deleting the friend request when the request is denied.

younus93 avatar Jul 27 '22 10:07 younus93

@spinalwiz Could you please send a PR? If this is a bug, someone else will probably have it else well.

francoism90 avatar Nov 07 '22 07:11 francoism90

This was my initial observation while using this package. I am overcoming this by deleting the friend request when the request is denied.

What method are you using to delete the requests?

Chlemdel avatar May 01 '23 09:05 Chlemdel