Refactored the get user achievements

This commit is contained in:
Ruben Vereecken 2014-05-20 00:24:16 +02:00
parent 0f1c59f2d5
commit 2003b37343
2 changed files with 10 additions and 11 deletions

View file

@ -9,14 +9,4 @@ class EarnedAchievementHandler extends Handler
hasAccess: (req) ->
req.method is 'GET'
getByRelationship: (req, res, related, id) ->
switch related
when 'user'
query = @modelClass.find({user: new mongoose.Types.ObjectId(id)})
query.exec (err, documents) =>
return @sendDatabaseError(res, err) if err?
documents = (@formatEntity(req, doc) for doc in documents)
@sendSuccess(res, documents)
else return @sendNotFoundError(res)
module.exports = new EarnedAchievementHandler()
module.exports = new EarnedAchievementHandler()

View file

@ -10,6 +10,7 @@ async = require 'async'
log = require 'winston'
LevelSession = require('../levels/sessions/LevelSession')
LevelSessionHandler = require '../levels/sessions/level_session_handler'
EarnedAchievement = require '../achievements/earned_achievement_handler'
serverProperties = ['passwordHash', 'emailLower', 'nameLower', 'passwordReset']
privateProperties = [
@ -192,6 +193,7 @@ UserHandler = class UserHandler extends Handler
return @getCandidates(req, res) if args[1] is 'candidates'
return @getSimulatorLeaderboard(req, res, args[0]) if args[1] is 'simulatorLeaderboard'
return @getMySimulatorLeaderboardRank(req, res, args[0]) if args[1] is 'simulator_leaderboard_rank'
return @getEarnedAchievements(req, res, args[0]) if args[1] is 'achievements'
return @sendNotFoundError(res)
super(arguments...)
@ -235,6 +237,13 @@ UserHandler = class UserHandler extends Handler
documents = (LevelSessionHandler.formatEntity(req, doc) for doc in documents)
@sendSuccess(res, documents)
getEarnedAchievements: (req, res, userID) ->
query = EarnedAchievement.find(user: userID)
query.exec (err, documents) =>
return @sendDatabaseError(res, err) if err?
documents = (@formatEntity(req, doc) for doc in documents)
@sendSuccess(res, documents)
agreeToEmployerAgreement: (req, res) ->
userIsAnonymous = req.user?.get('anonymous')
if userIsAnonymous then return errors.unauthorized(res, "You need to be logged in to agree to the employer agreeement.")