/* let migrationName = 'Jackalopes for Unlimited Subscribers'; */ /* * This migration will find users with unlimited subscriptions who are also eligible for Jackalope mounts, and award them */ import Bluebird from 'bluebird'; import { model as Group } from '../../website/server/models/group'; import { model as User } from '../../website/server/models/user'; async function handOutJackalopes () { let promises = []; let cursor = User.find({ 'purchased.plan.customerId': 'habitrpg', }).cursor(); cursor.on('data', async (user) => { console.log(`User: ${ user._id}`); let groupList = []; if (user.party._id) groupList.push(user.party._id); groupList = groupList.concat(user.guilds); let subscribedGroup = await Group.findOne({ _id: {$in: groupList}, 'purchased.plan.planId': 'group_monthly', 'purchased.plan.dateTerminated': null, }, {_id: 1} ); if (subscribedGroup) { User.update({_id: user._id}, {$set: {'items.mounts.Jackalope-RoyalPurple': true}}).exec(); promises.push(user.save()); } }); cursor.on('close', async () => { console.log('done'); return await Bluebird.all(promises); }); } module.exports = handOutJackalopes;