fix: update api
This commit is contained in:
@@ -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': '*',
|
||||||
|
|||||||
@@ -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,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user