mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-28 03:21:56 +02:00
* Add new scheduled-jobs queue dedicated to delayed jobs * Extract createScheduledJob and enqueue to a dedicated QueueHandler * Queues cleanup & refactoring (review suggestions) GitOrigin-RevId: f7b9380388430e878def83cd44e7d086d0fb92ad
29 lines
822 B
JavaScript
29 lines
822 B
JavaScript
const Queues = require('../../infrastructure/Queues')
|
|
const EmailHandler = require('../Email/EmailHandler')
|
|
const UserUpdater = require('./UserUpdater')
|
|
const UserGetter = require('./UserGetter')
|
|
|
|
const ONE_DAY_MS = 24 * 60 * 60 * 1000
|
|
|
|
async function scheduleOnboardingEmail(user) {
|
|
await Queues.createScheduledJob(
|
|
'emails-onboarding',
|
|
{ data: { userId: user._id } },
|
|
ONE_DAY_MS
|
|
)
|
|
}
|
|
|
|
async function sendOnboardingEmail(userId) {
|
|
const user = await UserGetter.promises.getUser({ _id: userId }, { email: 1 })
|
|
if (user) {
|
|
await EmailHandler.promises.sendEmail('userOnboardingEmail', {
|
|
to: user.email,
|
|
})
|
|
await UserUpdater.promises.updateUser(user._id, {
|
|
$set: { onboardingEmailSentAt: new Date() },
|
|
})
|
|
}
|
|
}
|
|
|
|
module.exports = { scheduleOnboardingEmail, sendOnboardingEmail }
|