// src/routes/contact.js
const express = require("express");
const router = express.Router();
const sendContactMail = require("../utils/sendContactMail");
const getBaseContext = require("../utils/baseContext");
const formLimiter = require("../utils/formLimiter");
const verifyHCaptcha = require("../utils/verifyHCaptcha");
router.post("/contact", formLimiter, async (req, res, next) => {
try {
const { name, email, message, hcaptchaToken } = req.body;
if (!hcaptchaToken) {
return res.status(400).send("Captcha token missing");
}
const valid = await verifyHCaptcha(hcaptchaToken);
if (!valid) {
return res.status(400).send("Captcha verification failed");
}
await sendContactMail({ name, email, message });
res.redirect("/contact/thankyou");
} catch (err) {
next(err);
}
});
router.get("/contact", async (req, res) => {
const context = await getBaseContext({
csrfToken: res.locals.csrfToken,
title: "Contact",
});
res.render("pages/contact.handlebars", context);
});
router.get("/contact/thankyou", async (req, res) => {
const context = await getBaseContext({
title: "Thank You",
});
res.render("pages/thankyou.handlebars", context);
});
module.exports = router;