mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-27 17:45:40 -05:00
Introduced findBySlugOrId to fix a bug
This commit is contained in:
parent
0084b64d67
commit
5f7ef825f8
3 changed files with 11 additions and 3 deletions
3
server/lib/utils.coffee
Normal file
3
server/lib/utils.coffee
Normal file
|
@ -0,0 +1,3 @@
|
|||
|
||||
module.exports =
|
||||
isID: (id) -> _.isString(id) and id.length is 24 and id.match(/[a-f0-9]/gi)?.length is 24
|
|
@ -1,6 +1,7 @@
|
|||
mongoose = require('mongoose')
|
||||
textSearch = require('mongoose-text-search')
|
||||
log = require 'winston'
|
||||
utils = require '../lib/utils'
|
||||
|
||||
module.exports.MigrationPlugin = (schema, migrations) ->
|
||||
# Property name migrations made EZ
|
||||
|
@ -31,9 +32,13 @@ module.exports.NamedPlugin = (schema) ->
|
|||
schema.add({name: String, slug: String})
|
||||
schema.index({'slug': 1}, {unique: true, sparse: true, name: 'slug index'})
|
||||
|
||||
schema.statics.getBySlug = (slug, done) ->
|
||||
schema.statics.findBySlug = (slug, done) ->
|
||||
@findOne {slug: slug}, done
|
||||
|
||||
schema.statics.findBySlugOrId = (slugOrID, done) ->
|
||||
return @findById slugOrID, done if utils.isID slugOrID
|
||||
@findOne {slug: slugOrID}, done
|
||||
|
||||
schema.pre('save', (next) ->
|
||||
if schema.uses_coco_versions
|
||||
v = @get('version')
|
||||
|
|
|
@ -208,7 +208,7 @@ UserHandler = class UserHandler extends Handler
|
|||
@sendSuccess(res, {result: 'success'})
|
||||
|
||||
avatar: (req, res, id) ->
|
||||
@modelClass.findById(id).exec (err, document) =>
|
||||
@modelClass.findBySlugOrId(id).exec (err, document) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
return @sendNotFoundError(res) unless document
|
||||
photoURL = document?.get('photoURL')
|
||||
|
@ -232,7 +232,7 @@ UserHandler = class UserHandler extends Handler
|
|||
|
||||
IDify: (idOrSlug, done) ->
|
||||
return done null, idOrSlug if Handler.isID idOrSlug
|
||||
User.getBySlug idOrSlug, (err, user) -> done err, user?.get '_id'
|
||||
User.findBySlug idOrSlug, (err, user) -> done err, user?.get '_id'
|
||||
|
||||
getLevelSessions: (req, res, userIDOrSlug) ->
|
||||
@IDify userIDOrSlug, (err, userID) =>
|
||||
|
|
Loading…
Reference in a new issue