From b5f78bf3049c181b47d8692b728d7087c4fad51d Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sun, 27 Apr 2025 22:58:24 +0530 Subject: Bug Fix: preventing an undefined friendId causing unwanted deletion of all of the user's friendships (one sidedly, too\!) --- src/controller/friend.ts | 6 ++++-- src/service/friend.ts | 7 +++---- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/controller/friend.ts b/src/controller/friend.ts index 5d76350..4690f39 100644 --- a/src/controller/friend.ts +++ b/src/controller/friend.ts @@ -87,9 +87,11 @@ const addFriend = async (req: Request, res: Response) => { const removeFriend = async (req: Request, res: Response) => { try { + if (req.body.friendId === undefined || req.body.friendId === null || !Number.isInteger(req.body.friendId)) { + res.status(400).json({ message: "Invalid Friend ID" }); // @ts-ignore - if (req.userId == req.body.friendId) { - res.status(400).json({ message: "Attempted to unfriend self" }); + } else if (req.userId == req.body.friendId) { + res.status(400).json({message: "Attempted to unfriend self"}); } else { // @ts-ignore const { count } = await unfriend(req.userId, req.body.friendId) diff --git a/src/service/friend.ts b/src/service/friend.ts index 8266323..1f30760 100644 --- a/src/service/friend.ts +++ b/src/service/friend.ts @@ -33,15 +33,14 @@ const friend = async (userId: Number, friendId: Number) => { return readById(userId); } -const unfriend = async (userId: Number, friendId: Number) => { +const unfriend = (userId: Number, friendId: Number) => { return prisma.friend.deleteMany({ where: { OR: [ // @ts-ignore - { userId: userId }, - + { userId: userId, friendId: friendId }, // @ts-ignore - { userId: friendId }, + { userId: friendId, friendId: userId } ] } }) -- cgit v1.2.3