mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-06-01 13:21:37 +02:00
Add typescript-eslint rule: no-floating-promises GitOrigin-RevId: 8c3decdff537c885f5bfeb5250b7805480bc6602
38 lines
1009 B
JavaScript
38 lines
1009 B
JavaScript
const { callbackify } = require('util')
|
|
const Settings = require('@overleaf/settings')
|
|
const logger = require('@overleaf/logger')
|
|
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
|
|
).catch(err => {
|
|
logger.warn({ err, emailType, opts }, 'failed to queue deferred email')
|
|
})
|
|
}
|