mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
52fafa96c5
WFH Export: Account for user being undefined GitOrigin-RevId: 8e653fda6eaea3cdde8e5677f24ef39c1c97bb94
54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
const mongojs = require('../../app/src/infrastructure/mongojs')
|
|
const { db } = mongojs
|
|
const async = require('async')
|
|
|
|
db.deletedSubscriptions.aggregate(
|
|
{ $match: { 'subscription.teamName': /(Work From Home|Work from Home)/ } },
|
|
{ $unwind: '$subscription.member_ids' },
|
|
{
|
|
$group: { _id: null, memberIds: { $addToSet: '$subscription.member_ids' } }
|
|
},
|
|
function(err, results) {
|
|
if (err) {
|
|
console.error(err)
|
|
process.exit(1)
|
|
}
|
|
|
|
if (!results.length) {
|
|
console.error('No users found')
|
|
process.exit(1)
|
|
}
|
|
|
|
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) {
|
|
if (user) {
|
|
const emails = user.emails.map(email => email.email)
|
|
console.log(
|
|
`${user._id},${user.first_name || ''},${user.last_name || ''},${
|
|
user.signUpDate
|
|
},${emails.join(',')}`
|
|
)
|
|
} else {
|
|
console.error('A group user was not found')
|
|
}
|
|
callback(err)
|
|
})
|
|
},
|
|
function(err) {
|
|
if (err) {
|
|
console.error(err)
|
|
process.exit(1)
|
|
}
|
|
|
|
process.exit(0)
|
|
}
|
|
)
|
|
}
|
|
)
|