fix: update api

This commit is contained in:
2025-06-09 22:10:30 +03:00
parent 52cd380714
commit 3fd44fba14
2 changed files with 21 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
export async function GET(request: Request) { export async function GET(request: Request) {
return new Response('Heartbeat!', { return new Response('Heartbeat is OK!', {
status: 200, status: 200,
headers: { headers: {
'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Origin': '*',

View File

@@ -1,9 +1,9 @@
import nodemailer from 'nodemailer'; import nodemailer from 'nodemailer';
type TFormData = { type TFormData = {
name: string; name?: string;
phone: string; phone: string;
message: string; message?: string;
form: string; form: string;
}; };
@@ -11,20 +11,19 @@ async function sendMail(data: TFormData) {
const { name, phone, message, form } = data; const { name, phone, message, form } = data;
const formattedBody = ` const formattedBody = `
<html> <html lang="ru-RU">
<body> <body>
<p>${message}</p> <p>Сообщение с сайта "Пожарная экспертиза"</p>
<p>---</p> <p>Форма отправки: ${form}</p>
<p>${name}</p> <p>Имя отправителя: ${name ?? 'не указано'}</p>
<p>${phone}</p> <p>Номер телефона: ${phone}</p>
<p>---</p> <p>Сообщение: ${message ?? 'отсутствует'}</p>
<p>${form}</p>
</body> </body>
</html> </html>
`; `;
const transporter = nodemailer.createTransport({ const transporter = nodemailer.createTransport({
service: 'gmail', // С помощью этой настройки можно менять тип почты, например gmail service: 'yandex',
auth: { auth: {
user: process.env.MAIL_USER, user: process.env.MAIL_USER,
pass: process.env.MAIL_PASS, pass: process.env.MAIL_PASS,
@@ -34,7 +33,7 @@ async function sendMail(data: TFormData) {
return await transporter.sendMail({ return await transporter.sendMail({
from: process.env.MAIL_FROM, from: process.env.MAIL_FROM,
to: process.env.MAIL_TO, to: process.env.MAIL_TO,
subject: 'Заявка с сайта', subject: 'Заявка с сайта FireExams',
html: formattedBody, html: formattedBody,
}); });
} }
@@ -42,18 +41,21 @@ async function sendMail(data: TFormData) {
export async function POST(request: Request) { export async function POST(request: Request) {
try { try {
const payload = await request.json(); const payload = await request.json();
if (payload.secure === process.env.SECURE_KEY) {
console.log(payload); if (payload.secure === process.env.MAIL_SECURE_KEY) {
await Promise.reject('Request failure!');
}
const sendResult = await sendMail({ ...payload });
if (sendResult?.messageId) {
return new Response('Success!', { status: 200 });
} else { } else {
throw new Error('Wrong secure key'); await Promise.reject('Sending request failure!');
} }
} catch (error) { } catch (error) {
return new Response(`Api error: ${error}`, { return new Response(`Api error: ${error}`, {
status: 400, status: 400,
}); });
} }
return new Response('Success!', {
status: 200,
});
} }