Add the Workshops page and keep each sign-up on the site.

The form is built once to the settled field set, and a valid send is saved before anyone is emailed.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilalloandCursor committed 2026-11-03 19:56:49 -07:00
1 parent 974a5ace4c
commit c0ba3a3798
50 files changed
+2773 -1

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
import { NextRequest } from "next/server";
import { apiRoute } from "../../../../lib/server/apiRoute";
import { NextResponse } from "next/server";
import { isDatabaseConfigured } from "../../../../lib/server/env";
import { dbUnavailable, notFound, unauthorized } from "../../../../lib/server/responses";
import { workshopInquiryPurgeToken } from "../../../../lib/server/workshopInquiryAdmin";
import {
purgeExpiredWorkshopInquiries,
retryPendingWorkshopInquiryMail,
} from "../../../../lib/server/workshopSignup";
export const POST = apiRoute("workshop-inquiries.purge", async (request: NextRequest) => {
const token = workshopInquiryPurgeToken();
if (!token) return notFound();
const header = request.headers.get("authorization") ?? "";
if (header !== `Bearer ${token}`) return unauthorized();
if (!isDatabaseConfigured()) return dbUnavailable();
const retried = await retryPendingWorkshopInquiryMail();
const deleted = await purgeExpiredWorkshopInquiries();
return NextResponse.json({ ok: true, retried, deleted });
});