2014-05-18 09:04:54 -04:00
|
|
|
Achievement = require './Achievement'
|
|
|
|
Handler = require '../commons/Handler'
|
|
|
|
|
|
|
|
class AchievementHandler extends Handler
|
|
|
|
modelClass: Achievement
|
|
|
|
|
2014-05-18 10:04:50 -04:00
|
|
|
# Used to determine which properties requests may edit
|
2014-06-03 06:40:47 -04:00
|
|
|
editableProperties: ['name', 'query', 'worth', 'collection', 'description', 'userField', 'proportionalTo', 'icon', 'function']
|
2014-05-18 09:04:54 -04:00
|
|
|
jsonSchema = require '../../app/schemas/models/achievement.coffee'
|
|
|
|
|
2014-05-18 10:04:50 -04:00
|
|
|
hasAccess: (req) ->
|
|
|
|
req.method is 'GET' or req.user?.isAdmin()
|
|
|
|
|
2014-08-04 16:21:43 -04:00
|
|
|
get: (req, res) ->
|
|
|
|
# /db/achievement?related=<ID>
|
|
|
|
if req.query.related
|
|
|
|
return @sendUnauthorizedError(res) if not @hasAccess(req)
|
|
|
|
Achievement.find {related: req.query.related}, (err, docs) =>
|
|
|
|
return @sendDatabaseError(res, err) if err
|
|
|
|
docs = (@formatEntity(req, doc) for doc in docs)
|
|
|
|
@sendSuccess res, docs
|
|
|
|
else
|
|
|
|
super req, res
|
|
|
|
|
2014-05-19 18:05:21 -04:00
|
|
|
module.exports = new AchievementHandler()
|