From 040dab15177d81874a6eb89f913a450f8a6f212d Mon Sep 17 00:00:00 2001 From: towfiqi Date: Sat, 9 Nov 2024 20:56:43 +0600 Subject: [PATCH] fix: Fixes missing Search Console data in Email notification when its integrated through App settings. --- pages/api/notify.ts | 2 +- utils/generateEmail.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pages/api/notify.ts b/pages/api/notify.ts index f76e43d..7fd1dba 100644 --- a/pages/api/notify.ts +++ b/pages/api/notify.ts @@ -78,7 +78,7 @@ const sendNotificationEmail = async (domain: Domain, settings: SettingsType) => const domainKeywords:Keyword[] = await Keyword.findAll(query); const keywordsArray = domainKeywords.map((el) => el.get({ plain: true })); const keywords: KeywordType[] = parseKeywords(keywordsArray); - const emailHTML = await generateEmail(domainName, keywords); + const emailHTML = await generateEmail(domainName, keywords, settings); await transporter.sendMail({ from: fromEmail, to: domain.notification_emails || notification_email, diff --git a/utils/generateEmail.ts b/utils/generateEmail.ts index 9dff830..2fc8e12 100644 --- a/utils/generateEmail.ts +++ b/utils/generateEmail.ts @@ -74,7 +74,7 @@ const getPositionChange = (history:KeywordHistory, position:number) : number => * @param {keywords[]} keywords - Keywords to scrape * @returns {Promise} */ -const generateEmail = async (domainName:string, keywords:KeywordType[]) : Promise => { +const generateEmail = async (domainName:string, keywords:KeywordType[], settings: SettingsType) : Promise => { const emailTemplate = await readFile(path.join(__dirname, '..', '..', '..', '..', 'email', 'email.html'), { encoding: 'utf-8' }); const currentDate = dayjs(new Date()).format('MMMM D, YYYY'); const keywordsCount = keywords.length; @@ -113,7 +113,8 @@ const generateEmail = async (domainName:string, keywords:KeywordType[]) : Promis .replace('{{stat}}', stat) .replace('{{preheader}}', stat); - const isConsoleIntegrated = !!(process.env.SEARCH_CONSOLE_PRIVATE_KEY && process.env.SEARCH_CONSOLE_CLIENT_EMAIL); + const isConsoleIntegrated = !!(process.env.SEARCH_CONSOLE_PRIVATE_KEY && process.env.SEARCH_CONSOLE_CLIENT_EMAIL) + || (settings.search_console_client_email && settings.search_console_private_key); const htmlWithSCStats = isConsoleIntegrated ? await generateGoogeleConsoleStats(domainName) : ''; const emailHTML = updatedEmail.replace('{{SCStatsTable}}', htmlWithSCStats);