Files
freeCodeCamp/server/boot/home.js

59 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-08-11 13:22:16 -07:00
import { defaultProfileImage } from '../../common/utils/constantStrings.json';
2016-06-17 12:35:10 -07:00
import supportedLanguages from '../../common/utils/supported-languages';
import dedent from 'dedent';
2015-08-11 13:22:16 -07:00
const message =
2015-10-31 02:59:09 -07:00
'Learn to Code and Help Nonprofits';
2014-01-13 04:34:54 -05:00
module.exports = function(app) {
var router = app.loopback.Router();
2015-08-11 13:22:16 -07:00
router.get('/', addDefaultImage, index);
2016-06-17 12:35:10 -07:00
app.use(
'/:lang',
(req, res, next) => {
// add url language to request for all routers
req._urlLang = req.params.lang;
next();
},
router
);
app.use(router);
2015-08-11 13:22:16 -07:00
function addDefaultImage(req, res, next) {
if (!req.user || req.user.picture) {
return next();
}
2016-06-17 12:35:10 -07:00
return req.user.update$({ picture: defaultProfileImage })
.subscribe(
() => next(),
next
);
2015-08-11 13:22:16 -07:00
}
2016-06-17 12:35:10 -07:00
function index(req, res, next) {
if (!supportedLanguages[req._urlLang]) {
return next();
}
const { referer = '' } = req.headers;
2016-06-17 12:35:10 -07:00
2015-08-11 13:22:16 -07:00
if (req.user) {
if ((referer.indexOf('/settings') >= 1) && (req.user.isGithubCool)) {
const msg = dedent`
We've updated your profile based
on your your GitHub account.
`;
const username = req.user.username;
req.flash('info', { msg: msg});
return res.redirect(`/${username}`);
} else {
return res.redirect('/challenges/current-challenge');
}
}
2016-06-17 12:35:10 -07:00
2016-03-02 20:54:14 -08:00
return res.render('home', { title: message });
}
};