going somewhere, kinda

This commit is contained in:
counterweight 2025-03-05 15:21:57 +01:00
parent ba9fa84407
commit 7db9e7f78c
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
2 changed files with 79 additions and 65 deletions

View file

@ -5,7 +5,8 @@ const path = require('path');
function buildDependencies() { function buildDependencies() {
const dependencies = {}; const dependencies = {};
dependencies.sequelize = require('./database'); const webRoutesProvider = new (require('./routes/webRoutes'))();
dependencies.webRoutes = webRoutesProvider.provide();
return dependencies; return dependencies;
} }
@ -26,7 +27,7 @@ function createApp(dependencies) {
app.use(createSessionMiddleware); app.use(createSessionMiddleware);
const webRoutes = require('./routes/webRoutes'); const webRoutes = dependencies.webRoutes;
const apiRoutes = require('./routes/apiRoutes'); const apiRoutes = require('./routes/apiRoutes');
app.use('/', webRoutes); app.use('/', webRoutes);

View file

@ -7,29 +7,36 @@ const attachPublicKeyMiddleware = require('../middlewares/attachPublicKeyMiddlew
const redirectIfMissingProfileDetailsMiddleware = require('../middlewares/redirectIfMissingProfileDetailsMiddleware'); const redirectIfMissingProfileDetailsMiddleware = require('../middlewares/redirectIfMissingProfileDetailsMiddleware');
const redirectHomeIfAuthorized = require('../middlewares/redirectHomeIfAuthorized'); const redirectHomeIfAuthorized = require('../middlewares/redirectHomeIfAuthorized');
router.get( class WebRoutesProvider {
provide() {
router.get(
'/', '/',
redirectHomeIfAuthorized, redirectHomeIfAuthorized,
redirectIfNotAuthorizedMiddleware, redirectIfNotAuthorizedMiddleware,
(req, res) => { (req, res) => {
res.redirect('/login'); res.redirect('/login');
} }
); );
router.get('/login', redirectHomeIfAuthorized, (req, res) => { router.get('/login', redirectHomeIfAuthorized, (req, res) => {
res.render('login', { uuid: req.cookies.sessionUuid }); res.render('login', { uuid: req.cookies.sessionUuid });
}); });
router.get('/invite/:inviteUuid', async (req, res) => { router.get('/invite/:inviteUuid', async (req, res) => {
const { inviteUuid } = req.params; const { inviteUuid } = req.params;
res.cookie('inviteUuid', inviteUuid, { httpOnly: true, maxAge: 86400000 }); res.cookie('inviteUuid', inviteUuid, {
httpOnly: true,
maxAge: 86400000,
});
let invite; let invite;
try { try {
invite = await invitesService.getAppInvite(inviteUuid); invite = await invitesService.getAppInvite(inviteUuid);
if (!invite) { if (!invite) {
return res.status(404).render('error', { message: 'Invite not found.' }); return res
.status(404)
.render('error', { message: 'Invite not found.' });
} }
if (await invitesService.isAppInviteSpent(inviteUuid)) { if (await invitesService.isAppInviteSpent(inviteUuid)) {
@ -37,21 +44,23 @@ router.get('/invite/:inviteUuid', async (req, res) => {
} }
} catch (error) { } catch (error) {
console.error('Error fetching invite:', error); console.error('Error fetching invite:', error);
return res.status(500).render('error', { message: 'An error occurred' }); return res
.status(500)
.render('error', { message: 'An error occurred' });
} }
return res.render('invite', { invite }); return res.render('invite', { invite });
}); });
router.get( router.get(
'/createProfile', '/createProfile',
redirectIfNotAuthorizedMiddleware, redirectIfNotAuthorizedMiddleware,
async (req, res) => { async (req, res) => {
return res.status(200).render('createProfile'); return res.status(200).render('createProfile');
} }
); );
router.get( router.get(
'/home', '/home',
redirectIfNotAuthorizedMiddleware, redirectIfNotAuthorizedMiddleware,
attachPublicKeyMiddleware, attachPublicKeyMiddleware,
@ -59,9 +68,9 @@ router.get(
(req, res) => { (req, res) => {
res.render('home', {}); res.render('home', {});
} }
); );
router.get( router.get(
'/offers', '/offers',
redirectIfNotAuthorizedMiddleware, redirectIfNotAuthorizedMiddleware,
attachPublicKeyMiddleware, attachPublicKeyMiddleware,
@ -69,6 +78,10 @@ router.get(
(req, res) => { (req, res) => {
res.render('offers', {}); res.render('offers', {});
} }
); );
module.exports = router; return router;
}
}
module.exports = WebRoutesProvider;