spee.ch/routes/show-routes.js

47 lines
1.7 KiB
JavaScript
Raw Normal View History

const errorHandlers = require('../helpers/libraries/errorHandlers.js');
const showController = require('../controllers/showController.js');
2017-06-29 23:34:23 +02:00
const { postToStats } = require('../helpers/libraries/statsHelpers.js');
const statsController = require('../controllers/statsController.js');
2017-06-13 20:00:50 +02:00
module.exports = (app) => {
2017-06-29 23:34:23 +02:00
// route to show the meme-fodder meme maker
app.get('/meme-fodder/play', ({ originalUrl, ip }, res) => {
2017-06-29 23:34:23 +02:00
// get and serve the content
2017-06-21 02:39:41 +02:00
showController
2017-06-21 18:14:53 +02:00
.getAllClaims('meme-fodder')
2017-06-21 02:39:41 +02:00
.then(orderedFreePublicClaims => {
2017-06-29 23:34:23 +02:00
postToStats('show', originalUrl, ip, 'success');
2017-06-21 02:39:41 +02:00
res.status(200).render('memeFodder', { claims: orderedFreePublicClaims });
})
.catch(error => {
2017-06-28 07:41:48 +02:00
errorHandlers.handleRequestError('show', originalUrl, ip, error, res);
2017-06-21 02:39:41 +02:00
});
2017-06-20 07:37:36 +02:00
});
2017-06-29 23:34:23 +02:00
// route to show statistics for spee.ch
app.get('/stats', ({ originalUrl, ip }, res) => {
// get and serve the content
statsController
.getStatsSummary()
.then(result => {
postToStats('show', originalUrl, ip, 'success');
res.status(200).render('statistics', result);
})
.catch(error => {
errorHandlers.handleRequestError(error, res);
});
});
// route to display all free public claims at a given name
app.get('/:name/all', ({ originalUrl, params, ip }, res) => {
2017-06-29 23:34:23 +02:00
// get and serve the content
showController
.getAllClaims(params.name)
.then(orderedFreePublicClaims => {
2017-06-29 23:34:23 +02:00
postToStats('show', originalUrl, ip, 'success');
res.status(200).render('allClaims', { claims: orderedFreePublicClaims });
})
.catch(error => {
2017-06-28 07:41:48 +02:00
errorHandlers.handleRequestError('show', originalUrl, ip, error, res);
});
});
};