34 lines
917 B
JavaScript
34 lines
917 B
JavaScript
/**
|
|
* 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)
|
|
})
|