summaryrefslogtreecommitdiff
path: root/src/actions/sendEmail.ts
blob: 4509a8ef3d95d68b25f2e739133fa90b034aee19 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import nodemailer from "nodemailer";
import { emailConfig } from "../utils/email.js";
import type { Project } from "../types.js";

const transporter = nodemailer.createTransport(emailConfig);

export const sendAuditEmail = async (
  projects: PromiseSettledResult<Project>[],
) => {
  const text = emailContent(projects);
  const email = await transporter.sendMail({
    from: `"${emailConfig.senderName}" <${emailConfig.senderEmail}>`,
    to: `${emailConfig.reciever}`,
    subject: emailConfig.subject ?? "Dependency Audit!",
    text: text,
  });

  return email;
};

const emailContent = (projects: PromiseSettledResult<Project>[]): string => {
  return `Here is your Report:
${projects.map((project) => {
  if (project.status === "fulfilled") {
    let projectVulnerabilities = project.value.metadata.vulnerabilities.total;
    return `
    ${project.value.projectName} has ${projectVulnerabilities} Security Issues`;
  }
  return `
    WARN: ${project.reason}`;
})}
`;
};