import { jsonError } from "../../common.js"; export async function onRequestDelete(context: RequestContext) { const path = context.data.body?.id; if (typeof path !== "string") return jsonError("Invalid path", 400); await context.env.D1.prepare( "DELETE FROM short_links WHERE path = ? AND user = ?;", ) .bind(path, context.data.current_user.id) .run(); 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.env.D1.prepare( "UPDATE short_links SET path = ? WHERE path = ? AND user = ?;", ) .bind(path, context.params.id, context.data.current_user.id) .run(); return new Response(null, { status: 204, }); }