diff options
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | prisma/schema.prisma | 4 | ||||
-rw-r--r-- | src/controller/friend.ts | 6 | ||||
-rw-r--r-- | src/service/friend.ts | 7 |
4 files changed, 9 insertions, 10 deletions
diff --git a/package.json b/package.json index 62caf3f..fa2d502 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "financer", - "version": "0.3.1", + "version": "0.4.0", "description": "Pocket Money Tracker", "main": "dist/index.js", "scripts": { diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 7c99fed..4e2dbbc 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -65,13 +65,11 @@ model MonthlyBudget { } model Friend { - id Int @id @default(autoincrement()) user User @relation(fields: [userId], references: [id]) userId Int friend User @relation(name: "friend", fields: [friendId], references: [id]) friendId Int - - @@unique([userId, friendId]) + @@id([userId, friendId]) } enum TransactionType { 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 } ] } }) |