upd: webpush

Deskripsi:
- database push notification
- update package
- memasang webpush

NO Issues
This commit is contained in:
amel
2024-11-18 17:12:58 +08:00
parent bc5ce5b48c
commit d847c97bec
30 changed files with 1267 additions and 282 deletions

View File

@@ -0,0 +1,44 @@
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!,
})
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))
}
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))
}