mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #691 from sharelatex/ja-resync-subscriptions-script
Add script that refreshes all v1 users' features in v2
This commit is contained in:
commit
2016be6be4
1 changed files with 64 additions and 0 deletions
64
services/web/scripts/sync_v1_subscriptions.js
Normal file
64
services/web/scripts/sync_v1_subscriptions.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
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({
|
||||
'overleaf.id': { $exists: true }
|
||||
}, {
|
||||
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()
|
||||
})
|
||||
})
|
Loading…
Reference in a new issue