refactor: reorganized socket.io admin modules

This commit is contained in:
psychobunny
2020-03-03 16:33:13 -05:00
parent 22ee2b8d06
commit e1c6c3b267
12 changed files with 347 additions and 291 deletions

View File

@@ -0,0 +1,69 @@
'use strict';
const async = require('async');
const userDigest = require('../../user/digest');
const userEmail = require('../../user/email');
const notifications = require('../../notifications');
const emailer = require('../../emailer');
const utils = require('../../../public/src/utils');
const Email = module.exports;
Email.test = function (socket, data, callback) {
const payload = {
subject: '[[email:test-email.subject]]',
};
switch (data.template) {
case 'digest':
userDigest.execute({
interval: 'alltime',
subscribers: [socket.uid],
}, callback);
break;
case 'banned':
Object.assign(payload, {
username: 'test-user',
until: utils.toISOString(Date.now()),
reason: 'Test Reason',
});
emailer.send(data.template, socket.uid, payload, callback);
break;
case 'welcome':
userEmail.sendValidationEmail(socket.uid, {
force: 1,
}, callback);
break;
case 'notification':
async.waterfall([
function (next) {
notifications.create({
type: 'test',
bodyShort: '[[email:notif.test.short]]',
bodyLong: '[[email:notif.test.long]]',
nid: 'uid:' + socket.uid + ':test',
path: '/',
from: socket.uid,
}, next);
},
function (notifObj, next) {
emailer.send('notification', socket.uid, {
path: notifObj.path,
subject: utils.stripHTMLTags(notifObj.subject || '[[notifications:new_notification]]'),
intro: utils.stripHTMLTags(notifObj.bodyShort),
body: notifObj.bodyLong || '',
notification: notifObj,
showUnsubscribe: true,
}, next);
},
], callback);
break;
default:
emailer.send(data.template, socket.uid, payload, callback);
break;
}
};