← back to Govarbitrage
src/app/api/newsletter/confirm/route.ts
31 lines
import { NextRequest } from "next/server";
import { prisma } from "@/lib/db";
import { resultPage } from "../result-page";
export const dynamic = "force-dynamic";
export async function GET(req: NextRequest) {
const token = req.nextUrl.searchParams.get("token") || "";
if (!token) {
return resultPage(400, "Missing link", "This confirmation link is incomplete. Please use the link from your email.");
}
const sub = await prisma.subscriber.findUnique({ where: { confirmToken: token } });
if (!sub) {
return resultPage(404, "Link not recognized", "This confirmation link is invalid or has been superseded by a newer one. Re-subscribe to get a fresh link.");
}
if (sub.status !== "CONFIRMED") {
await prisma.subscriber.update({
where: { id: sub.id },
data: { status: "CONFIRMED", confirmedAt: new Date() },
});
}
return resultPage(
200,
"You're subscribed",
"Your email is confirmed. The Top-10 government-surplus deals digest will arrive twice daily (6am & 5pm PT). Every digest includes a one-click unsubscribe link.",
);
}