feat(app): add calculator modal

This commit is contained in:
Sergey Krylov 2023-07-10 07:52:45 +03:00
parent 18fa9bd369
commit 0ab4ed1c8e

View File

@ -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);