import { jsonError } from "../../common.js"; import { sendPushNotification } from "../../gcloud.js"; export async function onRequestPost(context: RequestContext) { const { current_user: currentUser } = context.data; if (!currentUser) return jsonError("Unauthorized", 401); if (!(currentUser.permissions & (1 << 0))) return jsonError("Forbidden", 403); const { body, title } = context.data.body; if (typeof body !== "string" || typeof title !== "string") return jsonError("Body and title must be strings", 400); if ( new Blob([ JSON.stringify({ message: { notification: { body, title, }, }, }), ]).size > 4000 ) return jsonError("Payload too large", 400); await sendPushNotification(context.env, title, body); return new Response(null, { status: 204, }); }