Redirect to home path on unsuccessful query rather than induce infinite redirect loop.
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
var R = require('ramda'),
|
||||
// Rx = require('rx'),
|
||||
// debug = require('debug')('freecc:fieldguides'),
|
||||
debug = require('debug')('freecc:fieldguides'),
|
||||
utils = require('../utils');
|
||||
|
||||
module.exports = function(app) {
|
||||
@ -15,7 +15,7 @@ module.exports = function(app) {
|
||||
app.use(router);
|
||||
|
||||
function returnIndividualFieldGuide(req, res, next) {
|
||||
var dashedName = req.params.fieldGuideName;
|
||||
var dashedNameFromQuery = req.params.fieldGuideName;
|
||||
if (req.user) {
|
||||
var completed = req.user.completedFieldGuides;
|
||||
|
||||
@ -33,8 +33,13 @@ module.exports = function(app) {
|
||||
}
|
||||
|
||||
// NOTE(berks): loopback might have issue with regex here.
|
||||
FieldGuide.find(
|
||||
{ dashedName: new RegExp(dashedName, 'i') },
|
||||
var pattern = new RegExp(dashedNameFromQuery, 'i');
|
||||
debug('looking for %s', pattern);
|
||||
FieldGuide.find({ where:
|
||||
{ dashedName:
|
||||
{ like: pattern}
|
||||
}
|
||||
},
|
||||
function(err, fieldGuideFromMongo) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
@ -46,13 +51,13 @@ module.exports = function(app) {
|
||||
'Please double check the name.'
|
||||
});
|
||||
|
||||
return res.redirect('/field-guide');
|
||||
return res.redirect('/');
|
||||
}
|
||||
|
||||
var fieldGuide = R.head(fieldGuideFromMongo);
|
||||
fieldGuide.name.toLowerCase().replace(/\s/g, '-').replace(/\?/g, '');
|
||||
|
||||
if (fieldGuide.dashedName !== dashedName) {
|
||||
if (fieldGuide.dashedName !== dashedNameFromQuery) {
|
||||
return res.redirect('../field-guide/' + fieldGuide.dashedName);
|
||||
}
|
||||
res.render('field-guide/show', {
|
||||
|
Reference in New Issue
Block a user