Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. import userModel from '../../data/models/users';
  2. import videoModel from '../../data/models/video';
  3. const logger = require('../../../logConfig');
  4.  
  5. const async = require('async');
  6.  
  7. async function listVideoUser(data) {
  8. return await videoModel.find({_id: { $in : data.myVideo }, videoForComment: false}).exec();
  9. }
  10.  
  11. async function listAllUser() {
  12. return await userModel.find({}).exec();
  13. }
  14.  
  15. async function calcScore (result) {
  16. let scoreTotal = 0;
  17. let scoreFromVideoPublish = result.length * 10;
  18. for(var prop in result) {
  19. scoreTotal = scoreTotal + result[prop].score;
  20. }
  21. scoreTotal = scoreTotal / 100;
  22. scoreTotal = scoreTotal + scoreFromVideoPublish;
  23. return scoreTotal
  24. }
  25.  
  26. async function updateScore(userId, scoreTotal) {
  27. return await userModel.findOneAndUpdate(
  28. {"_id": userId},
  29. {$set: {
  30. score: scoreTotal }
  31. }
  32. ).exec();
  33. }
  34.  
  35. async function dailyUpdateScore () {
  36. let userArray = await listAllUser();
  37. async.eachSeries(userArray, async function iteratee(item, callback) {
  38. let result = await listVideoUser(item);
  39. let data = await calcScore(result);
  40. let update = await updateScore(item._id, data);
  41. callback(null, update);
  42. }, function done() {
  43. logger.info('User Score successfully updated');
  44. });
  45. };
  46.  
  47.  
  48. const update = Promise.all([
  49. dailyUpdateScore()
  50. ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement