mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
refactor: getUsersCSV to use batch lib
This commit is contained in:
@@ -6,6 +6,7 @@ const validator = require('validator');
|
|||||||
|
|
||||||
const db = require('../database');
|
const db = require('../database');
|
||||||
const plugins = require('../plugins');
|
const plugins = require('../plugins');
|
||||||
|
const batch = require('../batch');
|
||||||
|
|
||||||
module.exports = function (User) {
|
module.exports = function (User) {
|
||||||
User.logIP = async function (uid, ip) {
|
User.logIP = async function (uid, ip) {
|
||||||
@@ -29,15 +30,17 @@ module.exports = function (User) {
|
|||||||
|
|
||||||
User.getUsersCSV = async function () {
|
User.getUsersCSV = async function () {
|
||||||
winston.verbose('[user/getUsersCSV] Compiling User CSV data');
|
winston.verbose('[user/getUsersCSV] Compiling User CSV data');
|
||||||
let csvContent = '';
|
|
||||||
const uids = await db.getSortedSetRange('users:joindate', 0, -1);
|
|
||||||
const data = await plugins.fireHook('filter:user.csvFields', { fields: ['uid', 'email', 'username'] });
|
const data = await plugins.fireHook('filter:user.csvFields', { fields: ['uid', 'email', 'username'] });
|
||||||
const usersData = await User.getUsersFields(uids, data.fields);
|
let csvContent = data.fields.join(',') + '\n';
|
||||||
usersData.forEach(function (user) {
|
await batch.processSortedSet('users:joindate', async (uids) => {
|
||||||
if (user) {
|
const usersData = await User.getUsersFields(uids, data.fields);
|
||||||
csvContent += user.email + ',' + user.username + ',' + user.uid + '\n';
|
csvContent += usersData.reduce((memo, user) => {
|
||||||
}
|
memo += user.email + ',' + user.username + ',' + user.uid + '\n';
|
||||||
});
|
return memo;
|
||||||
|
}, '');
|
||||||
|
}, {});
|
||||||
|
|
||||||
return csvContent;
|
return csvContent;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user