dthpp-node/index.js
2025-02-15 18:56:28 +01:00

45 lines
1.4 KiB
JavaScript

const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const usersController = require('./controllers/users');
const matchController = require('./controllers/matchcontroller');
const social = require('./controllers/social')
app.use(bodyParser.json());
function authenticateJWT(req, res, next) {
const token = req.headers['authorization'] && req.headers['authorization'].split(' ')[1];
if (!token) return res.status(403).json({ error: 'Access denied. No token provided.' });
jwt.verify(token, process.env.JWT_SECRET, (err, user) => {
if (err) return res.status(403).json({ error: 'Invalid token.' });
req.user = user;
next();
});
}
// user management endpoints
app.post('/register', usersController.registerUser);
app.post('/login', usersController.authenticateUser);
app.post('/leaderboards', usersController.getLeaderboard);
app.post('/reset-password', authenticateJWT, usersController.resetPassword);
// social interaction endpoints
app.post('/add_friend', authenticateJWT, social.addFriend);
// match controller
app.post('/create-match', authenticateJWT, matchController.createMatch);
app.get('/', (req, res) => {
res.send('Server is running!');
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});