use Taskmanager to send email with correct locale

This commit is contained in:
les 2020-01-29 22:16:57 +01:00
parent 2784294e36
commit 0d83a48452
2 changed files with 20 additions and 22 deletions

View file

@ -209,7 +209,7 @@ const userController = {
if (!req.body.password) { delete req.body.password }
if (!user.is_active && req.body.is_active && user.recover_code) {
mail.send(user.email, 'confirm', { user, config })
mail.send(user.email, 'confirm', { user, config }, req.settings.locale)
}
await user.update(req.body)
@ -230,20 +230,10 @@ const userController = {
req.body.recover_code = crypto.randomBytes(16).toString('hex')
debug('Register user ', req.body.email)
const user = await User.create(req.body)
try {
debug(`Sending registration email to ${user.email}`)
mail.send(user.email, 'register', { user, config })
mail.send(config.admin_email, 'admin_register', { user, config })
} catch (e) {
return res.status(400).json(e)
}
const payload = {
id: user.id,
email: user.email,
scope: [user.is_admin ? 'admin' : 'user']
}
const token = jwt.sign(payload, config.secret)
res.json({ token, user })
debug(`Sending registration email to ${user.email}`)
mail.send(user.email, 'register', { user, config }, req.settings.locale)
mail.send(config.admin_email, 'admin_register', { user, config }, req.settings.locale)
res.sendStatus(200)
} catch (e) {
res.status(404).json(e)
}
@ -254,7 +244,7 @@ const userController = {
req.body.is_active = true
req.body.recover_code = crypto.randomBytes(16).toString('hex')
const user = await User.create(req.body)
mail.send(user.email, 'user_confirm', { user, config })
mail.send(user.email, 'user_confirm', { user, config }, req.settings.locale)
res.json(user)
} catch (e) {
res.status(404).json(e)

View file

@ -4,12 +4,20 @@ const moment = require('moment')
const config = require('config')
const settings = require('./controller/settings')
const debug = require('debug')('email')
// TOFIX
moment.locale('it')
const { Task, TaskManager } = require('../taskManager')
const mail = {
send (addresses, template, locals) {
send (addresses, template, locals, locale) {
const task = new Task({
name: 'MAIL',
removable: true,
method: mail._send,
args: [addresses, template, locals, locale]
})
TaskManager.add(task)
},
_send (addresses, template, locales, locale) {
debug(`Send ${template} email to ${addresses}`)
const email = new Email({
views: { root: path.join(__dirname, '..', 'emails') },
@ -43,8 +51,8 @@ const mail = {
bcc: config.admin_email
},
locals: {
...locals,
locale: 'it', // TOFIX
...locales,
locale,
config: { title: config.title, baseurl: config.baseurl, description: config.description },
datetime: datetime => moment.unix(datetime).format('ddd, D MMMM HH:mm')
}