summaryrefslogtreecommitdiff
path: root/apps/web/src/app/api
diff options
context:
space:
mode:
authorcashmere <cashmere@autistici.org>2026-07-27 01:21:02 +0200
committercashmere <cashmere@autistici.org>2026-07-27 01:21:02 +0200
commit2a372fdec256b8be890e181c221c2a012ead9efa (patch)
tree98fe5c495245cb3d87097f558b4e74e193d8ad87 /apps/web/src/app/api
parent2bbada7d2c5c00c5f844b6916c08bc4a9ea8cb25 (diff)
downloadopencut-2a372fdec256b8be890e181c221c2a012ead9efa.tar.gz
refactor: strip landing page and upstream branding
/ redirects to /projects; marketing landing components, the feedback popover + API route, and all Discord links removed (editor header, footer, onboarding copy).
Diffstat (limited to 'apps/web/src/app/api')
-rw-r--r--apps/web/src/app/api/feedback/route.ts31
1 files changed, 0 insertions, 31 deletions
diff --git a/apps/web/src/app/api/feedback/route.ts b/apps/web/src/app/api/feedback/route.ts
deleted file mode 100644
index cd853eea..00000000
--- a/apps/web/src/app/api/feedback/route.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { type NextRequest, NextResponse } from "next/server";
-import { z } from "zod";
-import { checkRateLimit } from "@/auth/rate-limit";
-import { submitFeedback, MAX_MESSAGE_LENGTH } from "@/feedback";
-
-const submitSchema = z.object({
- message: z
- .string()
- .min(1, "Message is required")
- .max(MAX_MESSAGE_LENGTH, "Message too long"),
-});
-
-export async function POST(request: NextRequest) {
- const { limited } = await checkRateLimit({ request });
- if (limited) {
- return NextResponse.json({ error: "Too many requests" }, { status: 429 });
- }
-
- const body = await request.json();
- const result = submitSchema.safeParse(body);
-
- if (!result.success) {
- return NextResponse.json(
- { error: "Invalid input", details: result.error.flatten().fieldErrors },
- { status: 400 },
- );
- }
-
- const entry = await submitFeedback(result.data);
- return NextResponse.json({ entry }, { status: 201 });
-}