overseer/index.js
Gregory Ballantine 93afda6d10
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Fixed errors caught by linter
2024-05-24 12:09:09 -04:00

75 lines
2.3 KiB
JavaScript

const express = require('express');
const session = require('express-session');
const RedisStore = require('connect-redis')(session);
// const flash = require('@bitgoblin/express-flasher');
// instantiate new express.js app
const app = express();
const config = require('config');
// initialize database connection
require('./src/models');
if (config.get('use_redis')) {
// initialize Redis store for session data
const redisClient = require('./src/redis');
// initialize express.js session w/ Redis datastore
app.use(session({
store: new RedisStore({
client: redisClient,
}), // use Redis datastore
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'lord of the rings',
}));
} else {
// initialize express.js session w/ Redis datastore
app.use(session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'lord of the rings',
}));
}
// setup flash messaging
// app.use(flash.flash());
// app.use(flash.flashRead());
// set up body POST parameters
app.use(express.json());
app.use(express.urlencoded({
extended: true,
}));
// load the template engine
app.set('view engine', 'twig');
// enable static file serving
app.use(express.static('public'));
// load route handlers
const homeRoutes = require('./src/routes/home');
const itemRoutes = require('./src/routes/item');
const licenseRoutes = require('./src/routes/license');
const searchRoutes = require('./src/routes/search');
// register route handlers
app.get('/', homeRoutes.getIndex);
app.get('/item/add', itemRoutes.getAdd);
app.post('/item/add', itemRoutes.postAdd);
app.get('/item/:id', itemRoutes.getItem);
app.get('/item/:id/edit', itemRoutes.getItemEdit);
app.post('/item/:id/edit', itemRoutes.postItemEdit);
app.get('/license/add', licenseRoutes.getAdd);
app.post('/license/add', licenseRoutes.postAdd);
app.get('/license/:id', licenseRoutes.getLicense);
app.get('/license/:id/edit', licenseRoutes.getEdit);
app.post('/license/:id/edit', licenseRoutes.postEdit);
app.get('/search', searchRoutes.getSearch);
// start app
app.listen(config.get('server.port'), config.get('server.address'), () => {
console.log(`Overseer is listening on port ${config.get('server.port')}.`);
});