2019-03-24 17:26:26 +01:00

130 lines
3.2 KiB
JavaScript

var express = require('express');
var MatomoTracker = require('matomo-tracker');
var router = express.Router();
/* GET home page */
router.get('/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
db.getItemList((items)=>{
res.render('index', { title: 'Dein.Equipment', items: items })
})
});
/* GET home page by sticker, v1 */
router.get('/by/sticker/v1/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
db.getItemList((items)=>{
res.render('index', { title: 'Dein.Equipment', items: items })
})
});
/* GET home page via instagram */
router.get('/via/instagram/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
db.getItemList((items)=>{
res.render('index', { title: 'Dein.Equipment', items: items })
})
});
/* GET home page via facebook */
router.get('/via/facebook/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
db.getItemList((items)=>{
res.render('index', { title: 'Dein.Equipment', items: items })
})
});
/* GET home page via direct link, given to others by human */
router.get('/via/directlink/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
db.getItemList((items)=>{
res.render('index', { title: 'Dein.Equipment', items: items })
})
});
router.get('/article/show/:identifier', function(req, res, next) {
var app = req.app
var db = app.get('DB')
const identifier = req.params.identifier
db.getItem(identifier, (item)=>{
db.getNotAvailableList(item.id, (notAvailableList)=>{
item.unavailableDates = notAvailableList
res.render('detail', { title: item.title, item: item })
})
})
});
/* GET imprint */
router.get('/imprint/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
res.render('imprint', { title: 'Dein.Equipment Impressum' })
});
/* GET privacy */
router.get('/privacy/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
res.render('privacy', { title: 'Dein.Equipment Datenschutz' })
});
/* GET terms and conditions */
router.get('/terms/', function(req, res, next) {
var app = req.app
var db = app.get('DB')
res.render('terms', { title: 'Dein.Equipment AGB' })
});
router.post('/request/', function(req, res, next) {
var app = req.app
var mailer = app.get('MAILER')
const params = {
id: req.body.itemID,
title: req.body.itemTitle,
start: req.body.start,
end: req.body.end,
name: req.body.name,
contact: req.body.contact
}
mailer.mail(params)
var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
trackAtMatomo(app, fullUrl, 'Anfrage', params)
res.render('request', { title: 'Dein.Equipment: Anfrage gesendet' })
})
function trackAtMatomo(app, url, actionName, data) {
var matomo = new MatomoTracker(app.get('CONF').matomo.site.id, app.get('CONF').matomo.url)
matomo.on('error', function(err) {
app.get('LOG').error('Router | Error tracking request: ' + err);
})
matomo.track({
url: url,
action_name: actionName, // Action, shown on dashboard
ua: 'Dein.Equipment Backend', // UserAgend
data: JSON.stringify(data)
})
}
module.exports = router;