diff --git a/server/boot/challenge.js b/server/boot/challenge.js index 02cecc639e..87f5be1611 100644 --- a/server/boot/challenge.js +++ b/server/boot/challenge.js @@ -41,7 +41,8 @@ var R = require('ramda'), observableQueryFromModel = require('../utils/rx').observableQueryFromModel, userMigration = require('../utils/middleware').userMigration, - ifNoUserRedirectTo = require('../utils/middleware').ifNoUserRedirectTo; + ifNoUserRedirectTo = require('../utils/middleware').ifNoUserRedirectTo, + ifNoUserSend = require('../utils/middleware').ifNoUserSend; var challengeMapWithNames = utils.getChallengeMapWithNames(); var challengeMapWithIds = utils.getChallengeMapWithIds(); @@ -75,17 +76,32 @@ module.exports = function(app) { var router = app.loopback.Router(); var Challenge = app.models.Challenge; var User = app.models.User; + var redirectNonUser = + ifNoUserRedirectTo('/challenges/learn-how-free-code-camp-works'); + var send200toNonUser = ifNoUserSend(true); - router.post('/completed-challenge/', completedChallenge); - router.post('/completed-zipline-or-basejump', completedZiplineOrBasejump); - router.post('/completed-bonfire', completedBonfire); + router.post( + '/completed-challenge/', + send200toNonUser, + completedChallenge + ); + router.post( + '/completed-zipline-or-basejump', + send200toNonUser, + completedZiplineOrBasejump + ); + router.post( + '/completed-bonfire', + send200toNonUser, + completedBonfire + ); // the follow routes are covered by userMigration router.use(userMigration); router.get('/map', challengeMap); router.get( '/challenges/next-challenge', - ifNoUserRedirectTo('/challenges/learn-how-free-code-camp-works'), + redirectNonUser, returnNextChallenge ); @@ -93,7 +109,7 @@ module.exports = function(app) { router.get( '/challenges/', - ifNoUserRedirectTo('/challenges/learn-how-free-code-camp-works'), + redirectNonUser, returnCurrentChallenge ); @@ -308,7 +324,6 @@ module.exports = function(app) { .withLatestFrom( Rx.Observable.just(req.user), function(pairedWith, user) { - debug('yo'); return { user: user, pairedWith: pairedWith diff --git a/server/utils/middleware.js b/server/utils/middleware.js index 5af207e513..dc0219f0a4 100644 --- a/server/utils/middleware.js +++ b/server/utils/middleware.js @@ -43,3 +43,11 @@ exports.ifNoUserRedirectTo = function ifNoUserRedirectTo(url) { }; }; +exports.ifNoUserSend = function ifNoUserSend(sendThis) { + return function(req, res, next) { + if (req.user) { + return next(); + } + return res.status(200).send(sendThis); + }; +};