38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import dedent from 'dedent';
|
|
import moment from 'moment';
|
|
|
|
import { observeMethod } from '../utils/rx';
|
|
|
|
function numberWithCommas(x) {
|
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
}
|
|
|
|
export default function about(app) {
|
|
const router = app.loopback.Router();
|
|
const User = app.models.User;
|
|
const userCount$ = observeMethod(User, 'count');
|
|
|
|
function showAbout(req, res, next) {
|
|
const daysRunning = moment().diff(new Date('10/15/2014'), 'days');
|
|
|
|
userCount$()
|
|
.map(camperCount => numberWithCommas(camperCount))
|
|
.doOnNext(camperCount => {
|
|
res.render('resources/about', {
|
|
camperCount,
|
|
daysRunning,
|
|
title: dedent`
|
|
About our Open Source Community, our social media presence,
|
|
and how to contact us`.split('\n').join(' '),
|
|
globalCompletedCount: numberWithCommas(
|
|
5612952 + (Math.floor((Date.now() - 1446268581061) / 1800))
|
|
)
|
|
});
|
|
})
|
|
.subscribe(() => {}, next);
|
|
}
|
|
|
|
router.get('/about', showAbout);
|
|
app.use(router);
|
|
}
|