blob: 24f4559d3111b4124556290cecc87a73a54b9323 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import 'dotenv/config';
import { EnvMistyMountainsMailerFactory } from '$lib/utils';
export async function post({ request }) {
const body = await request.json();
const { HCAPTCHA_SECRET, FORM_TO_EMAIL } = process.env;
const mailer = EnvMistyMountainsMailerFactory();
const captchaVerified = await fetch(
`https://hcaptcha.com/siteverify?response=${body.captchaToken}&secret=${HCAPTCHA_SECRET}`,
{
method: 'POST'
}
)
.then((res) => res.json())
.then((json) => json.success)
.catch(() => false);
if (!captchaVerified) {
return {
statusCode: 400,
body: {
error: 'Captcha verification failed'
}
};
}
const text = `Name: ${body.name}
Phone Number: ${body.phone || 'Not Given'}
Email: ${body.email}
Message: ${body.message}
`;
const messageSent = await mailer
.sendMail(FORM_TO_EMAIL, `Form Submission from ${body.name}`, text)
.then(() => true)
.catch((error) => {
console.error(error);
return false;
});
if (!messageSent) {
return {
statusCode: 500,
body: {
error: 'Message could not be sent'
}
};
}
return {
body: {
success: true
}
};
}
|