require('dotenv').config(); const express = require('express'); const path = require('path'); const config = require('./api_v1/config'); const { jwtMiddleware } = require('./middleware/jwt'); const staticMiddleware = require('./middleware/static'); const hlsMiddleware = require('./middleware/hls'); const authRouter = require('./routes/auth'); const configRouter = require('./routes/config'); const scanRouter = require('./routes/scan'); const autoScanRouter = require('./routes/autoScan'); const shareRouter = require('./routes/share'); const photosRouter = require('./routes/photos'); const activitiesRouter = require('./routes/activities'); const scanActivitiesRouter = require('./routes/scanActivities'); const scanStatusRouter = require('./routes/scanStatus'); const usersRouter = require('./routes/users'); const server = express(); // Statici pubblici server.use(staticMiddleware); server.use('/hls', hlsMiddleware); // Body parser server.use(express.json()); server.use(express.urlencoded({ extended: true })); // Login pubblico server.get('/login', (req, res) => { res.sendFile(path.join(__dirname, 'public/login.html')); }); // Rotte pubbliche server.use('/auth', authRouter); server.use('/config', configRouter); //server.use('/share', shareRouter); // JWT per tutto il resto server.use( /^(?!\/auth)(?!\/share)(?!\/login)(?!\/login.html)(?!\/css)(?!\/js)(?!\/img)(?!\/fonts)(?!\/favicon).*$/, jwtMiddleware ); // Rotte protette server.use('/share', shareRouter); server.use('/users', usersRouter); server.use('/photos', photosRouter); server.use('/activities', activitiesRouter); server.use('/scan', scanRouter); server.use('/scanActivities', scanActivitiesRouter); server.use('/api_v1/auto_scan', autoScanRouter); server.use('/scanStatus', scanStatusRouter); // Home server.get('/', (req, res) => { res.sendFile(path.resolve('public/index.html')); }); server.listen(config.PORT, () => { console.log(`Server running on port ${config.PORT}`); });