Files
sistem-desa-mandiri/src/app/api/push-notification/route.ts
amel 38cbc921f5 upd: cek notifikasi
Deskripsi:
- menambahkan button sementara pada fitur untuk mengetes push notifikasi

No Issues
2024-11-19 10:30:03 +08:00

47 lines
1.2 KiB
TypeScript

import { prisma } from "@/module/_global"
import { WibuServerPush } from 'wibu-pkg'
WibuServerPush.init({
NEXT_PUBLIC_VAPID_PUBLIC_KEY: process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY!,
VAPID_PRIVATE_KEY: process.env.VAPID_PRIVATE_KEY!,
})
// UNTUK SUBSCRIBE USER DEVICE
export async function POST(req: Request) {
const { user, subscription } = await req.json()
const upsert = await prisma.subscribe.upsert({
where: {
idUser: user
},
create: {
idUser: user,
subscription: JSON.stringify(subscription)
},
update: {
subscription: JSON.stringify(subscription)
}
})
return new Response(JSON.stringify(upsert))
}
// UNTUK KIRIM NOTIFIKASI
export async function PUT(req: Request) {
const sub = await prisma.subscribe.findMany()
const subs: PushSubscription[] = sub.map((v) => JSON.parse(v.subscription)) as PushSubscription[]
const kirim = await WibuServerPush.sendMany({
subscriptions: subs as any,
data: {
body: "ini test ",
title: "test notif",
link: "/",
variant: "notification"
}
})
return new Response(JSON.stringify(kirim))
}