Merged in Scott's changes manually

This commit is contained in:
Michael Schmatz 2014-02-13 15:14:08 -08:00
parent 1d3e013cc6
commit ad0590f9ba
2 changed files with 29 additions and 23 deletions
app/views/play
server/levels

View file

@ -20,8 +20,8 @@ class LeaderboardCollection extends CocoCollection
constructor: (level, options) ->
super()
options ?= {}
#@url = "/db/level/#{level.get('original')}.#{level.get('version').major}/leaderboard?#{$.param(options)}"
@url = "/db/level/#{level.get('original')}/leaderboard?#{$.param(options)}"
@url = "/db/level/#{level.get('original')}.#{level.get('version').major}/leaderboard?#{$.param(options)}"
#@url = "/db/level/#{level.get('original')}/leaderboard?#{$.param(options)}"
module.exports = class LadderView extends RootView

View file

@ -83,28 +83,34 @@ LevelHandler = class LevelHandler extends Handler
# [original, version] = id.split('.')
# version = parseInt version
# console.log 'get leaderboard for', original, version, req.query
@getDocumentForIdOrSlug id, (err, level) =>
[original, version] = id.split '.'
version = parseInt(version) or 0
req.query.order = parseInt(req.query.order) or -1
req.query.scoreOffset = parseInt(req.query.scoreOffset) ? 100000
req.query.team ?= 'humans'
req.query.limit ?= parseInt(req.query.limit) or 20
if parseInt(req.query.order) is 1
scoreQuery = {"$gte":parseFloat req.query.scoreOffset}
else
scoreQuery = {"$lte": parseFloat req.query.scoreOffset}
sessionsQuery =
level: {original: original, majorVersion: version}
team: req.query.team
totalScore: scoreQuery
submitted: true
sortObject =
"totalScore": parseInt(req.query.order)
query = Session.find(sessionsQuery).sort(sortObject).limit(parseInt req.query.limit)
Session.find sessionsQuery, 'totalScore creatorName creator', (err, resultSessions) =>
return @sendDatabaseError(res, err) if err
return @sendNotFoundError(res) unless level?
return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, level)
if parseInt(req.query.order) is 1
scoreQuery = {"$gte":parseFloat req.query.scoreOffset}
else
scoreQuery = {"$lte": parseFloat req.query.scoreOffset}
sessionsQuery =
level: {original: level.original.toString(), majorVersion: level.version.major}
team: req.query.team
totalScore: scoreQuery
submitted: true
console.log sessionsQuery
query = Session.find(sessionsQuery).sort({"totalScore":parseInt(req.query.order)}).limit(parseInt req.query.limit)
Session.find sessionsQuery, '_id totalScore submitted team creatorName', (err, resultSessions) =>
return @sendDatabaseError(res, err) if err
if resultSessions
return @sendSuccess res, resultSessions
res.send([])
if resultSessions
return @sendSuccess res, resultSessions
res.send([])
getFeedback: (req, res, id) ->
@getDocumentForIdOrSlug id, (err, level) =>