diff --git a/src/api/routes/order/controller.ts b/src/api/routes/order/controller.ts index 9b59cd0..4648183 100644 --- a/src/api/routes/order/controller.ts +++ b/src/api/routes/order/controller.ts @@ -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, 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) => {

Имя: ${name}

Телефон: ${phoneNumber}

Страница: ${getPageTitle()}

-

Пакет: ${rate.title}

-

Цена пакета: ${formatter.format(rate.price || rate.pricePerPerson)}

+

Пакет: ${rate?.title}

+

Цена пакета: ${formatter.format(rate?.price || rate?.pricePerPerson || 0)}

+ `; + + case 'calculator': + return ` +

Имя: ${name}

+

Телефон: ${phoneNumber}

+

Страница: ${getPageTitle()}

+

Комбо: ${info.rate}

+

Квест: ${info.quest}

+

Кол-во людей: ${info.memberQuantity}

+

Дата: ${info.date}

+

Стоимость: ${formatter.format(info.price)}

`; 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" ', 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);