Files
freeCodeCamp/server/boot/home.js
Stuart Taylor a76c8aff5a Fix: Settings/Portfolio UI (#17202)
* chore(names): Certificate -> Certification

* fix(style): Profile Certs alignment and font-size

* fix(button): Remove user icon

* fix(style): Adjust profile timeline UI

* fix(style): General account settings style fixes

* chore(updateEmail): Remove update email until we sort out auth0

* fix(copy): website -> personal website

* fix(copy): profile -> portfolio

* feat(home): Add legacy certs to user home page

* fix(copy): Change Honest settings copy

* fix(cert-settings): Filter out 'take home's

* fix(copy): next lesson -> next coding challenge

* fix(alignment): Align portfolio item settings' buttons
2018-05-21 10:21:15 -05:00

72 lines
2.0 KiB
JavaScript

import { defaultProfileImage } from '../../common/utils/constantStrings.json';
import { getRandomQuote } from '../../common/app/utils/quotes';
import { cachedMap } from '../utils/map';
// import NewsFeed from '../rss';
// const news = new NewsFeed();
module.exports = function(app, done) {
const { About } = app.models;
const router = app.loopback.Router();
let challengeCount = 0;
cachedMap(app.models)
.do(({ entities: { challenge } }) => {
challengeCount = Object.keys(challenge).length;
})
.subscribe(
() => {},
err => {throw new Error(err);},
() => {
router.get('/', addDefaultImage, index);
app.use(router);
done();
}
);
function addDefaultImage(req, res, next) {
if (!req.user || req.user.picture) {
return next();
}
return req.user.update$({ picture: defaultProfileImage })
.subscribe(
() => next(),
next
);
}
function index(req, res) {
const { user } = req;
const homePage = user ? 'userHome' : 'noUserHome';
const { quote, author} = getRandomQuote();
const title = user ?
`Welcome, ${user.name ? user.name : 'Camper'}!` :
'Learn to Code and Help Nonprofits';
const completedChallengeCount = user && user.completedChallengeCount || 0;
const completedProjectCount = user && user.completedProjectCount || 0;
const completedCertCount = user && user.completedCertCount || 0;
const completedLegacyCertCount = user && user.completedLegacyCertCount || 0;
Promise.all([
// news.getFeed(),
About.getActiveUsersForRendering()
])
.then(([
// feed,
activeUsers
]) => {
return res.render(
homePage, {
activeUsers,
author,
challengeCount,
completedChallengeCount,
completedProjectCount,
completedCertCount,
completedLegacyCertCount,
// feed,
quote,
title
});
});
}
};