From a4f4617b03fb712c75b4fbf940a334464ce45e91 Mon Sep 17 00:00:00 2001 From: Chrystal Maria Griffiths Date: Fri, 24 Jul 2020 12:46:25 +0100 Subject: [PATCH] Merge pull request #3048 from overleaf/cmg-wfh-export Export user details from WFH 2020 subscriptions GitOrigin-RevId: 4f9be9d2b6309f7766f2855b571b81fc40870081 --- .../web/scripts/wfh_2020/wfh_2020_export.js | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 services/web/scripts/wfh_2020/wfh_2020_export.js diff --git a/services/web/scripts/wfh_2020/wfh_2020_export.js b/services/web/scripts/wfh_2020/wfh_2020_export.js new file mode 100644 index 0000000000..eef17073f7 --- /dev/null +++ b/services/web/scripts/wfh_2020/wfh_2020_export.js @@ -0,0 +1,41 @@ +const mongojs = require('../../app/src/infrastructure/mongojs') +const { db } = mongojs +const async = require('async') + +db.subscriptions.aggregate( + { $match: { teamName: /(Work From Home|Work from Home)/ } }, + { $unwind: '$member_ids' }, + { $group: { _id: null, memberIds: { $addToSet: '$member_ids' } } }, + function(err, results) { + if (err || !results.length) { + throw err + } + + const userIds = results[0].memberIds + + console.log('Id,First Name,Last Name,Sign Up Date,Emails') + + async.eachLimit( + userIds, + 10, + function(userId, callback) { + db.users.findOne(userId, function(err, user) { + const emails = user.emails.map(email => email.email) + console.log( + `${user._id},${user.first_name || ''},${user.last_name || ''},${ + user.signUpDate + },${emails.join(',')}` + ) + callback(err) + }) + }, + function(err) { + if (err) { + throw err + } + + process.exit(0) + } + ) + } +)