Merged in Scott's changes manually
This commit is contained in:
parent
1d3e013cc6
commit
ad0590f9ba
2 changed files with 29 additions and 23 deletions
|
@ -20,8 +20,8 @@ class LeaderboardCollection extends CocoCollection
|
||||||
constructor: (level, options) ->
|
constructor: (level, options) ->
|
||||||
super()
|
super()
|
||||||
options ?= {}
|
options ?= {}
|
||||||
#@url = "/db/level/#{level.get('original')}.#{level.get('version').major}/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)}"
|
#@url = "/db/level/#{level.get('original')}/leaderboard?#{$.param(options)}"
|
||||||
|
|
||||||
|
|
||||||
module.exports = class LadderView extends RootView
|
module.exports = class LadderView extends RootView
|
||||||
|
|
|
@ -83,28 +83,34 @@ LevelHandler = class LevelHandler extends Handler
|
||||||
# [original, version] = id.split('.')
|
# [original, version] = id.split('.')
|
||||||
# version = parseInt version
|
# version = parseInt version
|
||||||
# console.log 'get leaderboard for', original, version, req.query
|
# 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 @sendDatabaseError(res, err) if err
|
||||||
return @sendNotFoundError(res) unless level?
|
if resultSessions
|
||||||
return @sendUnauthorizedError(res) unless @hasAccessToDocument(req, level)
|
return @sendSuccess res, resultSessions
|
||||||
|
res.send([])
|
||||||
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([])
|
|
||||||
|
|
||||||
getFeedback: (req, res, id) ->
|
getFeedback: (req, res, id) ->
|
||||||
@getDocumentForIdOrSlug id, (err, level) =>
|
@getDocumentForIdOrSlug id, (err, level) =>
|
||||||
|
|
Reference in a new issue