import { jsonError } from "../../../common.js"; export async function onRequestPost(context: RequestContext) { const { pathname } = new URL(context.request.url); // Fix weirdo routing issue if (pathname.endsWith("/submit") || pathname.endsWith("/toggle")) return await context.next(); const { permissions } = context.data.current_user; if (!(permissions & (1 << 0)) && !(permissions & (1 << 11))) return jsonError("Forbidden", 403); const { body } = context.data; const id = context.params.id as string; context.data.targetId = id; if (!pathname.endsWith("/ban")) { const key = await context.env.DATA.get(`appeal_${id}`); if (!key) return jsonError("No appeal with that ID exists", 404); context.data.appeal = JSON.parse(key); } if ( body.feedback && (typeof body.feedback !== "string" || body.feedback.length > 512) ) return jsonError("Invalid feedback", 400); return await context.next(); }