feat(app): add calculator modal
This commit is contained in:
parent
18fa9bd369
commit
0ab4ed1c8e
@ -3,9 +3,28 @@ import { Request, Response } from 'express';
|
|||||||
import mailer from '../../../services/mailer';
|
import mailer from '../../../services/mailer';
|
||||||
import { formatter } from '../../../utils';
|
import { formatter } from '../../../utils';
|
||||||
|
|
||||||
export const getNewOrder = async (req: Request, res: Response) => {
|
type OrderBody = {
|
||||||
// @ts-ignore
|
info: {
|
||||||
|
date: string;
|
||||||
|
memberQuantity: number;
|
||||||
|
price: number;
|
||||||
|
quest: string;
|
||||||
|
rate: string;
|
||||||
|
};
|
||||||
|
name: string;
|
||||||
|
page: 'birthday' | 'graduation' | 'master-classes' | 'outdoors' | 'show-programs';
|
||||||
|
phoneNumber: string;
|
||||||
|
rate?: {
|
||||||
|
price?: number;
|
||||||
|
pricePerPerson?: number;
|
||||||
|
title: string;
|
||||||
|
};
|
||||||
|
type: 'calculator' | 'callback' | 'newRate';
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getNewOrder = async (req: Request<any, any, OrderBody>, res: Response) => {
|
||||||
const {
|
const {
|
||||||
|
info,
|
||||||
name,
|
name,
|
||||||
page,
|
page,
|
||||||
phoneNumber,
|
phoneNumber,
|
||||||
@ -21,6 +40,9 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
|||||||
case 'newRate':
|
case 'newRate':
|
||||||
return 'Заявка на комбо';
|
return 'Заявка на комбо';
|
||||||
|
|
||||||
|
case 'calculator':
|
||||||
|
return 'Калькулятор праздника';
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return 'Нужно связаться';
|
return 'Нужно связаться';
|
||||||
}
|
}
|
||||||
@ -59,8 +81,20 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
|||||||
<p>Имя: <b>${name}</b></p>
|
<p>Имя: <b>${name}</b></p>
|
||||||
<p>Телефон: <b>${phoneNumber}</b></p>
|
<p>Телефон: <b>${phoneNumber}</b></p>
|
||||||
<p>Страница: <b>${getPageTitle()}</b></p>
|
<p>Страница: <b>${getPageTitle()}</b></p>
|
||||||
<p>Пакет: <b>${rate.title}</b></p>
|
<p>Пакет: <b>${rate?.title}</b></p>
|
||||||
<p>Цена пакета: <b>${formatter.format(rate.price || rate.pricePerPerson)}</b></p>
|
<p>Цена пакета: <b>${formatter.format(rate?.price || rate?.pricePerPerson || 0)}</b></p>
|
||||||
|
`;
|
||||||
|
|
||||||
|
case 'calculator':
|
||||||
|
return `
|
||||||
|
<p>Имя: <b>${name}</b></p>
|
||||||
|
<p>Телефон: <b>${phoneNumber}</b></p>
|
||||||
|
<p>Страница: <b>${getPageTitle()}</b></p>
|
||||||
|
<p>Комбо: <b>${info.rate}</b></p>
|
||||||
|
<p>Квест: <b>${info.quest}</b></p>
|
||||||
|
<p>Кол-во людей: <b>${info.memberQuantity}</b></p>
|
||||||
|
<p>Дата: <b>${info.date}</b></p>
|
||||||
|
<p>Стоимость: <b>${formatter.format(info.price)}</b></p>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -69,6 +103,7 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
||||||
const info = await mailer.sendMail({
|
const info = await mailer.sendMail({
|
||||||
from: '"Arkids Test" <ksv741-test@yandex.ru>',
|
from: '"Arkids Test" <ksv741-test@yandex.ru>',
|
||||||
html: getHtml(),
|
html: getHtml(),
|
||||||
@ -87,6 +122,11 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
|||||||
console.log('Отправлено письмо с заявкой на комбо: %s', info.messageId);
|
console.log('Отправлено письмо с заявкой на комбо: %s', info.messageId);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'calculator':
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('Отправлено письмо с калькулятором: %s', info.messageId);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.log('Отправлено письмо: %s', info.messageId);
|
console.log('Отправлено письмо: %s', info.messageId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user