efficient fetching of level sessions

This commit is contained in:
Ruben Vereecken 2014-06-19 17:24:07 +02:00
parent aa4832791e
commit a1667a0d5e

View file

@ -238,11 +238,11 @@ UserHandler = class UserHandler extends Handler
getLevelSessions: (req, res, userID) ->
query = creator: userID
isAuthorized = req.user._id+'' is userID or req.user.isAdmin()
projection = null
projection = {}
if req.query.project
projection = {}
projection[field] = 1 for field in req.query.project.split(',') when isAuthorized or not (field in LevelSessionHandler.privateProperties)
# If no req.query.project, then LevelSessionHandler.formatEntity will remove private properties if needed.
else unless isAuthorized
projection[field] = 0 for field in LevelSessionHandler.privateProperties
LevelSession.find(query).select(projection).exec (err, documents) =>
return @sendDatabaseError(res, err) if err