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