feat: add delete notification
All checks were successful
Spell Check / Spell Check with Typos (push) Successful in 9s
All checks were successful
Spell Check / Spell Check with Typos (push) Successful in 9s
This commit is contained in:
parent
6265ac8a65
commit
9bf534adce
2 changed files with 35 additions and 5 deletions
|
|
@ -135,11 +135,39 @@ export class NotificationController extends Controller {
|
|||
);
|
||||
}
|
||||
|
||||
@Delete()
|
||||
@Security("keycloak")
|
||||
async deleteNotificationMany(@Request() req: RequestWithUser, @Body() notificationId: string[]) {
|
||||
if (!notificationId.length) return;
|
||||
|
||||
return await prisma.notification
|
||||
.findMany({ where: { id: { in: notificationId } } })
|
||||
.then(async (v) => {
|
||||
await prisma.$transaction(
|
||||
v.map((v) =>
|
||||
prisma.notification.update({
|
||||
where: { id: v.id },
|
||||
data: {
|
||||
deleteByUser: { connect: { id: req.user.sub } },
|
||||
},
|
||||
}),
|
||||
),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@Delete("{notificationId}")
|
||||
@Security("keycloak")
|
||||
async deleteNotification(@Request() req: RequestWithUser, @Path() notificationId: string) {
|
||||
const record = await prisma.notification.deleteMany({ where: { id: notificationId } });
|
||||
if (record.count === 0) throw notFoundError("Notification");
|
||||
return record;
|
||||
const record = await prisma.notification.findFirst({ where: { id: notificationId } });
|
||||
if (!record) throw notFoundError("Notification");
|
||||
return await prisma.notification.update({
|
||||
where: { id: notificationId },
|
||||
data: {
|
||||
deleteByUser: {
|
||||
disconnect: { id: req.user.sub },
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue