2016-06-17 12:35:10 -07:00
|
|
|
import supportedLanguages from '../../common/utils/supported-languages';
|
|
|
|
import passThroughs from '../utils/lang-passthrough-urls';
|
|
|
|
// import debug from 'debug';
|
|
|
|
|
|
|
|
// const log = debug('fcc:controller:lang-redirect');
|
|
|
|
const toLowerCase = String.prototype.toLowerCase;
|
|
|
|
|
|
|
|
export default function redirectLang(app) {
|
|
|
|
app.all('*', function(req, res, next) {
|
|
|
|
const { url, path } = req;
|
|
|
|
const langCode = toLowerCase.call(url.split('/')[1]);
|
|
|
|
|
|
|
|
if (passThroughs[langCode]) {
|
|
|
|
return next();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (supportedLanguages[langCode]) {
|
|
|
|
req.flash('errors', {
|
2016-07-14 17:32:44 -07:00
|
|
|
msg: `We couldn't find path ${ path }`
|
2016-06-17 12:35:10 -07:00
|
|
|
});
|
2016-07-14 17:32:44 -07:00
|
|
|
return res.render('404', { title: '404'});
|
2016-06-17 12:35:10 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
// language aware redirect
|
|
|
|
return res.redirect(url);
|
|
|
|
});
|
|
|
|
}
|