| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- let USER_QUERY = null
- if (process.argv[2] === '--all') {
- USER_QUERY = {}
- } else if (process.argv[2] === '--v1-only') {
- USER_QUERY = { 'overleaf.id': { $exists: true } }
- } else {
- console.error(`Usage:\n\n\tnode ${process.argv[1]} (--all|--v1-only)`)
- process.exit(1)
- }
- const {db} = require('../app/js/infrastructure/mongojs')
- const FeaturesUpdater = require(
- '../app/js/Features/Subscription/FeaturesUpdater'
- )
- const V1SubscriptionManager = require(
- '../app/js/Features/Subscription/V1SubscriptionManager'
- )
- const async = require('async')
- const logger = require('logger-sharelatex')
- logger.logger.level('error')
- const areFeaturesEqual = function (featuresA, featuresB) {
- for (const feature in featuresA) {
- if (featuresA[feature] !== featuresB[feature]) {
- return false
- }
- }
- return true
- }
- var outOfSyncUserCount = 0
- var userCount = null
- db.users.find(USER_QUERY, {
- overleaf: 1,
- features: 1
- }, function (error, users) {
- if (error) throw error
- console.log('USER COUNT', userCount = users.length)
- async.mapSeries(users, function (user, callback) {
- console.log('REFRESHING IN v2', user._id)
- FeaturesUpdater.refreshFeatures(user._id, false, function (error) {
- if (error) console.error('ERROR', error)
- console.log('REFRESHING IN v1', user._id)
- V1SubscriptionManager.notifyV1OfFeaturesChange(
- user._id,
- function (error) {
- if (error) console.error('ERROR', error)
- db.users.find({
- _id: user._id
- }, {
- features: 1
- }, function (error, [updatedUser]) {
- if (error) throw error
- if (areFeaturesEqual(user.features, updatedUser.features)) {
- console.log('UNCHANGED', user._id)
- } else {
- console.log('MODIFIED', user._id)
- outOfSyncUserCount = outOfSyncUserCount + 1
- }
- callback()
- })
- }
- )
- })
- }, function (error) {
- if (error) throw error
- console.log('FINISHED!')
- console.log('OUT OF SYNC USERS', outOfSyncUserCount, '/', userCount)
- process.exit()
- })
- })
|