import { readSubscriptions, writeSubscriptions } from "~/server/database"; import { Subscription } from "~/shared/types/account"; export default defineEventHandler(async (event) => { const session = await requireAccountSession(event); const body: { subscription: PushSubscriptionJSON } = await readBody(event); const subscriptions = await readSubscriptions(); const existingIndex = subscriptions.findIndex( sub => sub.type === "push" && sub.sessionId === session.id ); const subscription: Subscription = { type: "push", sessionId: session.id, push: body.subscription }; if (existingIndex !== -1) { subscriptions[existingIndex] = subscription; } else { subscriptions.push(subscription); } await writeSubscriptions(subscriptions); if (existingIndex !== -1) { return { message: "Existing subscription refreshed."}; } return { message: "New subscription registered."}; })