Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import userModel from '../../data/models/users';
- import videoModel from '../../data/models/video';
- const logger = require('../../../logConfig');
- const async = require('async');
- async function listVideoUser(data) {
- return await videoModel.find({_id: { $in : data.myVideo }, videoForComment: false}).exec();
- }
- async function listAllUser() {
- return await userModel.find({}).exec();
- }
- async function calcScore (result) {
- let scoreTotal = 0;
- let scoreFromVideoPublish = result.length * 10;
- for(var prop in result) {
- scoreTotal = scoreTotal + result[prop].score;
- }
- scoreTotal = scoreTotal / 100;
- scoreTotal = scoreTotal + scoreFromVideoPublish;
- return scoreTotal
- }
- async function updateScore(userId, scoreTotal) {
- return await userModel.findOneAndUpdate(
- {"_id": userId},
- {$set: {
- score: scoreTotal }
- }
- ).exec();
- }
- async function dailyUpdateScore () {
- let userArray = await listAllUser();
- async.eachSeries(userArray, async function iteratee(item, callback) {
- let result = await listVideoUser(item);
- let data = await calcScore(result);
- let update = await updateScore(item._id, data);
- callback(null, update);
- }, function done() {
- logger.info('User Score successfully updated');
- });
- };
- const update = Promise.all([
- dailyUpdateScore()
- ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement