import { Handlers, PageProps } from "$fresh/server.ts"; import { storage } from "../lib/storage.ts"; import { validateEmail } from "../lib/utils.ts"; export const handler: Handlers = { async GET(request, ctx) { const url = new URL(request.url); const email = url.searchParams.get("email"); if (!email) { console.error("Missing email in query params", request.url); return Response.redirect("/donations-error"); } if (!validateEmail(email)) { console.error("Invalid email server side", email); return Response.redirect("/donations-error"); } const agreement = await storage.readVippsAgreement({ id: email }); if (!agreement) { console.error("Missing agreement for email", email); return Response.redirect("/donations-error"); } const validatedAgreement = await storage.writeVippsAgreement({ ...agreement, validAt: new Date(), }); return ctx.render({ agreement: validatedAgreement }); }, }; export default function ({ data }: PageProps<{ agreement: { status: string; id: string; }; status: string; }>) { return (
); }