mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-04-26 14:03:28 -04:00
Another fix for poll handler getting next poll if there are no poll records yet.
This commit is contained in:
parent
89bdb3b790
commit
ab64a335e4
1 changed files with 16 additions and 10 deletions
|
@ -25,17 +25,23 @@ PollHandler = class PollHandler extends Handler
|
|||
super arguments...
|
||||
|
||||
getNextPoll: (req, res, userPollsRecordID) ->
|
||||
UserPollsRecord.findOne(_id: mongoose.Types.ObjectId(userPollsRecordID)).lean().exec (err, userPollsRecord) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
answeredPolls = _.keys(userPollsRecord?.polls ? {})
|
||||
if answeredPolls.length
|
||||
query = {_id: {$nin: (mongoose.Types.ObjectId(pollID) for pollID in answeredPolls)}}
|
||||
else
|
||||
query = {}
|
||||
Poll.findOne(query).sort('priority').exec (err, poll) =>
|
||||
if userPollsRecordID and userPollsRecordID isnt '-'
|
||||
UserPollsRecord.findOne(_id: mongoose.Types.ObjectId(userPollsRecordID)).lean().exec (err, userPollsRecord) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
return @sendNotFoundError(res) unless poll
|
||||
@sendSuccess res, @formatEntity(req, poll)
|
||||
answeredPolls = _.keys(userPollsRecord?.polls ? {})
|
||||
@getNextUnansweredPoll req, res, answeredPolls
|
||||
else
|
||||
@getNextUnansweredPoll req, res, []
|
||||
|
||||
getNextUnansweredPoll: (req, res, answeredPolls) ->
|
||||
if answeredPolls.length
|
||||
query = {_id: {$nin: (mongoose.Types.ObjectId(pollID) for pollID in answeredPolls)}}
|
||||
else
|
||||
query = {}
|
||||
Poll.findOne(query).sort('priority').exec (err, poll) =>
|
||||
return @sendDatabaseError(res, err) if err
|
||||
return @sendNotFoundError(res) unless poll
|
||||
@sendSuccess res, @formatEntity(req, poll)
|
||||
|
||||
delete: (req, res, slugOrID) ->
|
||||
return @sendForbiddenError res unless req.user?.isAdmin()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue