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:
@@ -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)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user