import { jsonError } from "../../common.js"; export async function onRequestDelete(context: RequestContext) { const path = decodeURIComponent(context.params.id as string); await context.data.prisma.shortLink.delete({ where: { path, user: context.data.current_user.id, }, }); return new Response(null, { status: 204, }); } export async function onRequestPatch(context: RequestContext) { const { body } = context.data; if (!body) return jsonError("Request body missing", 400); let data: { path: any }; try { data = JSON.parse(body); } catch { return jsonError("Invalid JSON", 400); } if (Object.keys(data).find((k) => k !== "path")) return jsonError("Only the `path` property can be modified.", 400); const { path } = data; if (typeof path !== "string") return jsonError("The `path` property must be a string", 400); if (path.length > 256) return jsonError("Path is too long", 400); await context.data.prisma.shortLink.update({ data: { path, }, where: { path: decodeURIComponent(context.params.id as string), user: context.data.current_user.id, }, }); return new Response(null, { status: 204, }); }