Merge pull request #2992 from overleaf/msm-add-user-projection-referal

Added projection to User.find() queries in Referal feature

GitOrigin-RevId: 4929bcd9c1b242b7e35cc2632bbd8da3f378cd1d
This commit is contained in:
Miguel Serrano
2020-07-17 02:06:31 +00:00
committed by Copybot
parent e692802690
commit 5b40eca697
10 changed files with 129 additions and 246 deletions
@@ -1,34 +1,18 @@
/* eslint-disable
camelcase,
max-len,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
let ReferalAllocator
const _ = require('underscore')
const logger = require('logger-sharelatex')
const { User } = require('../../models/User')
const Settings = require('settings-sharelatex')
const FeaturesUpdater = require('../Subscription/FeaturesUpdater')
module.exports = ReferalAllocator = {
allocate(referal_id, new_user_id, referal_source, referal_medium, callback) {
module.exports = {
allocate(referalId, newUserId, referalSource, referalMedium, callback) {
if (callback == null) {
callback = function() {}
}
if (referal_id == null) {
if (referalId == null) {
return callback(null)
}
const query = { referal_id: referal_id }
return User.findOne(query, function(error, user) {
const query = { referal_id: referalId }
return User.findOne(query, { _id: 1 }, function(error, user) {
if (error != null) {
return callback(error)
}
@@ -36,12 +20,12 @@ module.exports = ReferalAllocator = {
return callback(null)
}
if (referal_source === 'bonus') {
return User.update(
if (referalSource === 'bonus') {
User.update(
query,
{
$push: {
refered_users: new_user_id
refered_users: newUserId
},
$inc: {
refered_user_count: 1
@@ -51,17 +35,16 @@ module.exports = ReferalAllocator = {
function(err) {
if (err != null) {
logger.warn(
{ err, referal_id, new_user_id },
{ err, referalId, newUserId },
'something went wrong allocating referal'
)
return callback(err)
}
return FeaturesUpdater.refreshFeatures(user._id, callback)
FeaturesUpdater.refreshFeatures(user._id, callback)
}
)
} else {
return callback()
callback()
}
})
}
@@ -1,14 +1,3 @@
/* eslint-disable
max-len,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
module.exports = {
use(req, res, next) {
if (req.query != null) {
@@ -58,6 +47,6 @@ module.exports = {
}
}
return next()
next()
}
}
@@ -1,31 +1,22 @@
/* eslint-disable
camelcase,
handle-callback-err,
max-len,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const logger = require('logger-sharelatex')
const ReferalHandler = require('./ReferalHandler')
const AuthenticationController = require('../Authentication/AuthenticationController')
module.exports = {
bonus(req, res) {
const user_id = AuthenticationController.getLoggedInUserId(req)
return ReferalHandler.getReferedUsers(
user_id,
(err, refered_users, refered_user_count) =>
res.render('referal/bonus', {
title: 'bonus_please_recommend_us',
refered_users,
refered_user_count
})
bonus(req, res, next) {
const userId = AuthenticationController.getLoggedInUserId(req)
ReferalHandler.getReferedUsers(
userId,
(err, referedUsers, referedUserCount) => {
if (err) {
next(err)
} else {
res.render('referal/bonus', {
title: 'bonus_please_recommend_us',
refered_users: referedUsers,
refered_user_count: referedUserCount
})
}
}
)
}
}
@@ -1,40 +1,27 @@
/* eslint-disable
camelcase,
handle-callback-err,
max-len,
no-return-assign,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
let ReferalFeatures
const _ = require('underscore')
const { User } = require('../../models/User')
const Settings = require('settings-sharelatex')
let ReferalFeatures
module.exports = ReferalFeatures = {
getBonusFeatures(user_id, callback) {
getBonusFeatures(userId, callback) {
if (callback == null) {
callback = function(error) {}
callback = function() {}
}
const query = { _id: user_id }
return User.findOne(query, function(error, user) {
const query = { _id: userId }
User.findOne(query, { refered_user_count: 1 }, function(error, user) {
if (error) {
return callback(error)
}
if (user == null) {
return callback(new Error(`user not found ${user_id} for assignBonus`))
return callback(new Error(`user not found ${userId} for assignBonus`))
}
if (user.refered_user_count != null && user.refered_user_count > 0) {
const newFeatures = ReferalFeatures._calculateFeatures(user)
return callback(null, newFeatures)
callback(null, newFeatures)
} else {
return callback(null, {})
callback(null, {})
}
})
},
@@ -1,23 +1,14 @@
/* eslint-disable
camelcase,
handle-callback-err,
max-len,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const { User } = require('../../models/User')
module.exports = {
getReferedUsers(user_id, callback) {
return User.findById(user_id, function(err, user) {
const refered_users = user.refered_users || []
const refered_user_count = user.refered_user_count || refered_users.length
return callback(null, refered_users, refered_user_count)
getReferedUsers(userId, callback) {
User.findById(userId, { refered_users: 1 }, function(err, user) {
if (err) {
return callback(err)
}
const referedUsers = user.refered_users || []
const referedUserCount = user.refered_user_count || referedUsers.length
callback(null, referedUsers, referedUserCount)
})
}
}