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 { formatter } from '../../../utils';
|
||||
|
||||
export const getNewOrder = async (req: Request, res: Response) => {
|
||||
// @ts-ignore
|
||||
type OrderBody = {
|
||||
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 {
|
||||
info,
|
||||
name,
|
||||
page,
|
||||
phoneNumber,
|
||||
@ -21,6 +40,9 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
||||
case 'newRate':
|
||||
return 'Заявка на комбо';
|
||||
|
||||
case 'calculator':
|
||||
return 'Калькулятор праздника';
|
||||
|
||||
default:
|
||||
return 'Нужно связаться';
|
||||
}
|
||||
@ -59,8 +81,20 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
||||
<p>Имя: <b>${name}</b></p>
|
||||
<p>Телефон: <b>${phoneNumber}</b></p>
|
||||
<p>Страница: <b>${getPageTitle()}</b></p>
|
||||
<p>Пакет: <b>${rate.title}</b></p>
|
||||
<p>Цена пакета: <b>${formatter.format(rate.price || rate.pricePerPerson)}</b></p>
|
||||
<p>Пакет: <b>${rate?.title}</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:
|
||||
@ -69,6 +103,7 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
||||
};
|
||||
|
||||
async function main() {
|
||||
// eslint-disable-next-line @typescript-eslint/no-shadow
|
||||
const info = await mailer.sendMail({
|
||||
from: '"Arkids Test" <ksv741-test@yandex.ru>',
|
||||
html: getHtml(),
|
||||
@ -87,6 +122,11 @@ export const getNewOrder = async (req: Request, res: Response) => {
|
||||
console.log('Отправлено письмо с заявкой на комбо: %s', info.messageId);
|
||||
break;
|
||||
|
||||
case 'calculator':
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Отправлено письмо с калькулятором: %s', info.messageId);
|
||||
break;
|
||||
|
||||
default:
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Отправлено письмо: %s', info.messageId);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user