Files
Verso/services/web/app/src/Features/Email/EmailHandler.js
T
Brian Gough 9702b36c64 Merge pull request #16833 from overleaf/bg-google-spam-add-email-metrics
Include email type and rate-limit status in metrics

GitOrigin-RevId: eb5645e68d9ee3571d04b87b2c0fc09f9caa126a
2024-02-01 09:03:27 +00:00

35 lines
870 B
JavaScript

const { callbackify } = require('util')
const Settings = require('@overleaf/settings')
const EmailBuilder = require('./EmailBuilder')
const EmailSender = require('./EmailSender')
const Queues = require('../../infrastructure/Queues')
const EMAIL_SETTINGS = Settings.email || {}
module.exports = {
sendEmail: callbackify(sendEmail),
sendDeferredEmail,
promises: {
sendEmail,
},
}
async function sendEmail(emailType, opts) {
const email = EmailBuilder.buildEmail(emailType, opts)
if (email.type === 'lifecycle' && !EMAIL_SETTINGS.lifecycle) {
return
}
opts.html = email.html
opts.text = email.text
opts.subject = email.subject
await EmailSender.promises.sendEmail(opts, emailType)
}
function sendDeferredEmail(emailType, opts, delay) {
Queues.createScheduledJob(
'deferred-emails',
{ data: { emailType, opts } },
delay
)
}