diff --git a/pages/api/email.ts b/pages/api/email.ts index b6e39d6..cd8d290 100644 --- a/pages/api/email.ts +++ b/pages/api/email.ts @@ -262,27 +262,35 @@ export default async function handler(req, res) { } }); - let subscribedPublishers = [], availablePublishers = []; - if (toSubscribed) { - //get all subscribed publisers - subscribedPublishers = await prisma.publisher.findMany({ - where: { - isSubscribedToCoverMe: true - } - }); + let targetEmails = await data.getCoverMePublisherEmails(assignment.shift.id); + if (!toSubscribed) { + targetEmails.subscribedPublishers = []; + } + if (!toAvailable) { + targetEmails.availablePublishers = []; } + // let subscribedPublishers = targetEmails.subscribedPublishers, availablePublishers = []; + // if (toSubscribed) { + // //get all subscribed publisers + // subscribedPublishers = await prisma.publisher.findMany({ + // where: { + // isSubscribedToCoverMe: true + // } + // }); + // } - if (toAvailable) { - availablePublishers = await data.filterPublishersNew("id,firstName,lastName,email", new Date(assignment.shift.startTime), - true, false); - } + // if (toAvailable) { + // availablePublishers = await data.filterPublishersNew("id,firstName,lastName,email", new Date(assignment.shift.startTime), + // true, false); + + // } // use //concat and remove duplicate emails - let pubsToSend = subscribedPublishers.concat(availablePublishers). + let pubsToSend = targetEmails.subscribedPublishers.concat(targetEmails.availablePublishers). filter((item, index, self) => index === self.findIndex((t) => ( t.email === item.email && item.email !== publisher.email//and exclude the user himself diff --git a/src/helpers/data.js b/src/helpers/data.js index 348e67a..f6dd167 100644 --- a/src/helpers/data.js +++ b/src/helpers/data.js @@ -488,6 +488,8 @@ async function getCoverMePublisherEmails(shiftId) { return pubs.map(pub => { return { id: pub.id, + firstName: pub.firstName, + lastName: pub.lastName, name: pub.firstName + " " + pub.lastName, email: pub.email } @@ -531,6 +533,8 @@ async function getCoverMePublisherEmails(shiftId) { availablePublishers = availablePublishers.map(pub => { return { id: pub.id, + firstName: pub.firstName, + lastName: pub.lastName, name: pub.firstName + " " + pub.lastName, email: pub.email } diff --git a/src/helpers/email.js b/src/helpers/email.js index 3fc3d21..93c912c 100644 --- a/src/helpers/email.js +++ b/src/helpers/email.js @@ -70,7 +70,15 @@ function normalizeEmailAddresses(to) { return emails; // Always returns an array } - +/// +/// Final email sending function. +/// +/// Email address or array of email addresses +/// Email subject +/// Plain text version of the email +/// HTML version of the email +/// Array of attachment objects +/// Promise exports.SendEmail = async function (to, subject, text, html, attachments = []) { let sender = process.env.EMAIL_SENDER || '"Специално Свидетелстване София" ';