diff --git a/src/app/api/mobile/announcement/route.ts b/src/app/api/mobile/announcement/route.ts index c5b0764..822227d 100644 --- a/src/app/api/mobile/announcement/route.ts +++ b/src/app/api/mobile/announcement/route.ts @@ -255,15 +255,20 @@ export async function POST(request: Request) { const dataNotifFilter = dataNotif.filter((v: any) => v.idUserTo != undefined && v.idUserTo != null && v.idUserTo != "" && v.idUserTo != userId) + const dataNotifFilterUnique = dataNotifFilter + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const pushNotif = dataPush.filter((item) => item.subscription != undefined) const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { title: 'Pengumuman Baru', body: title } }) const insertNotif = await prisma.notifications.createMany({ - data: dataNotifFilter + data: dataNotifFilterUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != ""); + await sendFCMNotificationMany({ token: tokenUnique, title: "Pengumuman Baru", diff --git a/src/app/api/mobile/discussion-general/route.ts b/src/app/api/mobile/discussion-general/route.ts index 556a2c4..bb46a00 100644 --- a/src/app/api/mobile/discussion-general/route.ts +++ b/src/app/api/mobile/discussion-general/route.ts @@ -210,9 +210,13 @@ export async function POST(request: Request) { } dataNotif.filter((v: any) => v.idUserTo != undefined && v.idUserTo != null && v.idUserTo != "" && v.idUserTo != userId) + const dataNotifUnique = dataNotif + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const insertNotif = await prisma.notifications.createMany({ - data: dataNotif + data: dataNotifUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != ""); diff --git a/src/app/api/mobile/discussion/route.ts b/src/app/api/mobile/discussion/route.ts index 38c2176..9dbdb43 100644 --- a/src/app/api/mobile/discussion/route.ts +++ b/src/app/api/mobile/discussion/route.ts @@ -263,12 +263,16 @@ export async function POST(request: Request) { } const dataNotifFilter = dataNotif.filter((v: any) => v.idUserTo != undefined && v.idUserTo != null && v.idUserTo != "" && v.idUserTo != userId) + const dataNotifFilterUnique = dataNotifFilter + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const pushNotif = dataPush.filter((item) => item.subscription != undefined) const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { body: deskripsiNotif, title: 'Diskusi Baru' } }) const insertNotif = await prisma.notifications.createMany({ - data: dataNotifFilter + data: dataNotifFilterUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != ""); diff --git a/src/app/api/mobile/division/route.ts b/src/app/api/mobile/division/route.ts index 4a8638d..48dfef7 100644 --- a/src/app/api/mobile/division/route.ts +++ b/src/app/api/mobile/division/route.ts @@ -314,12 +314,16 @@ export async function POST(request: Request) { } const dataNotifFilter = dataNotif.filter((v: any) => v.idUserTo != undefined && v.idUserTo != null && v.idUserTo != "" && v.idUserTo != userId) + const dataNotifFilterUnique = dataNotifFilter + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const pushNotif = dataPush.filter((item) => item.subscription != undefined) const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { title: 'Divisi Baru', body: `Divisi ${sent.data.name} telah dibuat. Silakan periksa detailnya.` } }) const insertNotif = await prisma.notifications.createMany({ - data: dataNotifFilter + data: dataNotifFilterUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != ""); diff --git a/src/app/api/mobile/project/route.ts b/src/app/api/mobile/project/route.ts index d0ed52f..bffa5f0 100644 --- a/src/app/api/mobile/project/route.ts +++ b/src/app/api/mobile/project/route.ts @@ -385,11 +385,15 @@ export async function POST(request: Request) { } const dataNotifFilter = dataNotif.filter((item) => item.idUserTo != undefined && item.idUserTo != null && item.idUserTo != "" && item.idUserTo != userId) + const dataNotifFilterUnique = dataNotifFilter + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const pushNotif = dataPush.filter((item) => item.subscription != undefined) const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { title: 'Kegiatan Baru', body: title } }) const insertNotif = await prisma.notifications.createMany({ - data: dataNotifFilter + data: dataNotifFilterUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != ""); diff --git a/src/app/api/mobile/task/route.ts b/src/app/api/mobile/task/route.ts index 5d36a81..a83083b 100644 --- a/src/app/api/mobile/task/route.ts +++ b/src/app/api/mobile/task/route.ts @@ -356,11 +356,15 @@ export async function POST(request: Request) { } const dataNotifFilter = dataNotif.filter((v: any) => v.idUserTo != undefined && v.idUserTo != null && v.idUserTo != "" && v.idUserTo != userId) + const dataNotifFilterUnique = dataNotifFilter + .filter((v: any, index: number, self: any[]) => + index === self.findIndex((t: any) => t.idUserTo == v.idUserTo) + ) const pushNotif = dataPush.filter((item) => item.subscription != undefined) const sendWebPush = await funSendWebPush({ sub: pushNotif, message: { body: title, title: 'Tugas Divisi Baru' } }) const insertNotif = await prisma.notifications.createMany({ - data: dataNotifFilter + data: dataNotifFilterUnique }) const tokenUnique = [...new Set(tokenDup.flat())].filter((v: any) => v != undefined && v != null && v != "");