UNPKG

@dreesq/serpent

Version:

An express wrapper for developing fast web applications

52 lines (45 loc) 1.28 kB
const {config, getPlugins} = require('../index'); const {config: configPlugin} = getPlugins(); const {TOKEN_TYPE_CONFIRM, USER_STATUS_INACTIVE} = require('../constants'); const {error, makeToken} = require('../utils'); config({ name: 'sendConfirm', middleware: [ 'auth:required' ], enabled: configPlugin.get('plugins.auth.confirm') })( /** * Resend user activation code * @param db * @param mail * @param user * @param t * @param utils * @returns {Promise<void>} */ async ({db, mail, user, t, utils}) => { const {Token} = db; if (user.status !== USER_STATUS_INACTIVE) { return error(t('errors.alreadyConfirmed')); } const token = await makeToken(); await Token.findOneAndUpdate({ userId: user._id, type: TOKEN_TYPE_CONFIRM }, { $set: { token } }); await mail({ to: user.email, subject: t('emails.confirmAccount.subject'), html: t('emails.confirmAccount.html', { user, url: utils.url('confirm', {token}) }) }); return success(t('messages.confirmResent')); } );