diff --git a/src/app/api/heartbeat/route.ts b/src/app/api/heartbeat/route.ts index bdf0b67..4867ec7 100644 --- a/src/app/api/heartbeat/route.ts +++ b/src/app/api/heartbeat/route.ts @@ -1,5 +1,5 @@ export async function GET(request: Request) { - return new Response('Heartbeat!', { + return new Response('Heartbeat is OK!', { status: 200, headers: { 'Access-Control-Allow-Origin': '*', diff --git a/src/app/api/sendform/route.ts b/src/app/api/sendform/route.ts index 40000fa..2a8ae60 100644 --- a/src/app/api/sendform/route.ts +++ b/src/app/api/sendform/route.ts @@ -1,9 +1,9 @@ import nodemailer from 'nodemailer'; type TFormData = { - name: string; + name?: string; phone: string; - message: string; + message?: string; form: string; }; @@ -11,20 +11,19 @@ async function sendMail(data: TFormData) { const { name, phone, message, form } = data; const formattedBody = ` - +
-${message}
----
-${name}
-${phone}
----
-${form}
+Сообщение с сайта "Пожарная экспертиза"
+Форма отправки: ${form}
+Имя отправителя: ${name ?? 'не указано'}
+Номер телефона: ${phone}
+Сообщение: ${message ?? 'отсутствует'}
`; const transporter = nodemailer.createTransport({ - service: 'gmail', // С помощью этой настройки можно менять тип почты, например gmail + service: 'yandex', auth: { user: process.env.MAIL_USER, pass: process.env.MAIL_PASS, @@ -34,7 +33,7 @@ async function sendMail(data: TFormData) { return await transporter.sendMail({ from: process.env.MAIL_FROM, to: process.env.MAIL_TO, - subject: 'Заявка с сайта', + subject: 'Заявка с сайта FireExams', html: formattedBody, }); } @@ -42,18 +41,21 @@ async function sendMail(data: TFormData) { export async function POST(request: Request) { try { 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 { - throw new Error('Wrong secure key'); + await Promise.reject('Sending request failure!'); } } catch (error) { return new Response(`Api error: ${error}`, { status: 400, }); } - - return new Response('Success!', { - status: 200, - }); }