src/send-email.js   A
last analyzed

Complexity

Total Complexity 2
Complexity/F 2

Size

Lines of Code 32
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
c 1
b 0
f 0
nc 1
dl 0
loc 32
rs 10
wmc 2
mnd 1
bc 2
fnc 1
bpm 2
cpm 2
noi 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A send-email.js ➔ ??? 0 23 2
1
import path from 'path'
2
import chalk from 'chalk'
3
import fs from 'fs'
4
import mkdir from './library/mkdir'
5
6
const successTemplate = fs.readFileSync(`${__dirname}/templates/success.xml`, { encoding: 'utf-8' })
7
8
const sendEmail = (req, res, dateDir, fullDir, log) => {
9
  const headers = `Subject: ${req.body['Message.Subject.Data']}\nTo Address: ${req.body['Destination.ToAddresses.member.1']}\nCc Address: ${req.body['Destination.CcAddresses.member.1']}\nBcc Address: ${req.body['Destination.BccAddresses.member.1']}\nReply To Address: ${req.body['ReplyToAddresses.member.1']}\nSource: ${req.body.Source}`
10
11
  if (!(req.body.Source && req.body['Message.Subject.Data'] && (req.body['Message.Body.Html.Data'] || req.body['Message.Body.Text.Data']) && req.body['Destination.ToAddresses.member.1'])) {
12
    throw new Error('One or more required fields was not sent')
13
  }
14
15
  mkdir(path.join(dateDir))
16
  mkdir(path.join(fullDir))
17
  log(`  📬  ${chalk.green('Email Received')}
18
    ${chalk.blue('From:')} ${req.body.Source}
19
    ${chalk.blue('To:')} ${req.body['Destination.ToAddresses.member.1']}
20
    ${chalk.blue('Subject:')} ${req.body['Message.Subject.Data']}
21
    ${chalk.blue('Html Email:')} ${process.cwd()}/${path.join(fullDir)}/body.html
22
    ${chalk.blue('Text Email:')} ${process.cwd()}/${path.join(fullDir)}/body.txt
23
  `)
24
  fs.writeFileSync(`${fullDir}/body.html`, req.body['Message.Body.Html.Data'])
25
  fs.writeFileSync(`${fullDir}/body.txt`, req.body['Message.Body.Text.Data'])
26
  fs.writeFileSync(`${fullDir}/headers.txt`, headers)
27
  res.status(200).send(
28
    successTemplate.replace('{{message}}', `${process.cwd()}/${path.join(fullDir)}/body.html`)
29
  )
30
}
31
32
export default sendEmail