From 84ba32b66ad6adee164a5eba8876c3b4a717842e Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Sat, 18 Oct 2025 21:44:30 +0000 Subject: [PATCH] Add investors interest API endpoint cgen-6ae3bcb74404419087fb20155db442c0 --- server/index.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/server/index.ts b/server/index.ts index a96fa22d..e42277be 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1180,6 +1180,40 @@ export function createServer() { } }); + // Investors: capture interest + app.post("/api/investors/interest", async (req, res) => { + const { name, email, amount, accredited, message } = (req.body || {}) as { + name?: string; email?: string; amount?: string; accredited?: boolean; message?: string; + }; + if (!email) return res.status(400).json({ error: "email required" }); + try { + const subject = `Investor interest: ${name || email}`; + const body = [ + `Name: ${name || "N/A"}`, + `Email: ${email}`, + `Amount: ${amount || "N/A"}`, + `Accredited: ${accredited ? "Yes" : "No / Unknown"}`, + message ? `\nMessage:\n${message}` : "", + ].join("\n"); + try { + const { emailService } = await import("./email"); + if (emailService.isConfigured) { + await (emailService as any).sendInviteEmail({ + to: process.env.VERIFY_SUPPORT_EMAIL || "support@aethex.biz", + inviteUrl: "https://aethex.dev/investors", + inviterName: name || email, + message: body, + }); + } + } catch (e) { + /* ignore email errors to not block */ + } + return res.json({ ok: true }); + } catch (e: any) { + return res.status(500).json({ error: e?.message || String(e) }); + } + }); + // Staff: users search/listing app.get("/api/staff/users", async (req, res) => { const limit = Math.max(1, Math.min(50, Number(req.query.limit) || 20));