upd: penerapan firebase
Deskripsi: - pengumuman - diskusi umum - diskusi divisi - divisi - kegiatan - tugas divisi No Issues
This commit is contained in:
@@ -5,6 +5,7 @@ import _ from "lodash";
|
||||
import moment from "moment";
|
||||
import "moment/locale/id";
|
||||
import { NextResponse } from "next/server";
|
||||
import { sendFCMNotificationMany } from "../../../../../xsendMany";
|
||||
|
||||
|
||||
|
||||
@@ -141,6 +142,29 @@ export async function POST(request: Request) {
|
||||
data: dataMember
|
||||
})
|
||||
|
||||
const memberNotifMobile = await prisma.discussionMember.findMany({
|
||||
where: {
|
||||
idDiscussion: data.id
|
||||
},
|
||||
select: {
|
||||
User: {
|
||||
select: {
|
||||
TokenDeviceUser: {
|
||||
select: {
|
||||
token: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const dataFCM = memberNotifMobile.map((v: any) => ({
|
||||
..._.omit(v, ["User", "TokenDeviceUser"]),
|
||||
tokens: v.User.TokenDeviceUser.map((v: any) => v.token)
|
||||
}))
|
||||
const tokenDup = dataFCM.filter((v: any) => v.tokens.length > 0).map((v: any) => v.tokens).flat();
|
||||
|
||||
const dataNotif = member.map((v: any) => ({
|
||||
..._.omit(v, ["idUser", "name", "img"]),
|
||||
idUserTo: v.idUser,
|
||||
@@ -164,10 +188,17 @@ export async function POST(request: Request) {
|
||||
select: {
|
||||
subscription: true
|
||||
}
|
||||
},
|
||||
TokenDeviceUser: {
|
||||
select: {
|
||||
token: true
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
tokenDup.push(perbekel?.TokenDeviceUser.map((v: any) => v.token).flat())
|
||||
|
||||
dataNotif.push({
|
||||
idUserTo: perbekel?.id,
|
||||
idUserFrom: userId,
|
||||
@@ -182,6 +213,14 @@ export async function POST(request: Request) {
|
||||
data: dataNotif
|
||||
})
|
||||
|
||||
const tokenUnique = [...new Set(tokenDup.flat())];
|
||||
await sendFCMNotificationMany({
|
||||
token: tokenUnique,
|
||||
title: "Diskusi Umum Baru",
|
||||
body: "Anda memiliki diskusi umum baru. Silahkan periksa detailnya.",
|
||||
data: { id: data.id, category: "discussion", content: data.id }
|
||||
})
|
||||
|
||||
|
||||
// create log user
|
||||
const log = await createLogUserMobile({ act: 'CREATE', desc: 'User membuat data diskusi umum', table: 'discussion', data: data.id, user })
|
||||
|
||||
Reference in New Issue
Block a user