full
This commit is contained in:
33
scripts/recalculateAllUserRatings.js
Normal file
33
scripts/recalculateAllUserRatings.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* One-time migration: recalculate rate (total stars) and user_score (average)
|
||||
* for all users. Run from modstagram-back:
|
||||
* node scripts/recalculateAllUserRatings.js
|
||||
*/
|
||||
require('dotenv').config()
|
||||
const mongoose = require('mongoose')
|
||||
const UserModel = require('../models/UserModel')
|
||||
const { recalculateUserRating } = require('../utils/commentRating')
|
||||
|
||||
async function main() {
|
||||
const uri = process.env.DATABASE_URL || process.env.MONGODB_URI || process.env.DB_URL
|
||||
if (!uri) {
|
||||
console.error('DATABASE_URL (or MONGODB_URI/DB_URL) required')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
await mongoose.connect(uri)
|
||||
const users = await UserModel.find({}, '_id').lean()
|
||||
console.log(`Recalculating ${users.length} users...`)
|
||||
|
||||
for (const user of users) {
|
||||
await recalculateUserRating(user._id)
|
||||
}
|
||||
|
||||
console.log('Done.')
|
||||
await mongoose.disconnect()
|
||||
}
|
||||
|
||||
main().catch((err) => {
|
||||
console.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
Reference in New Issue
Block a user