mirror of
https://github.com/LukasKanka/api_test.git
synced 2026-11-11 14:34:36 +01:00
- Move web/backend to backends/potter-api - Move web/frontend to backends/potter-api/frontend - Add root package.json with npm workspaces - Update README.md with monorepo navigation - Update .github/workflows/api-tests.yml for dynamic test discovery - Update bruno_test_scenario.md paths - Fix .gitignore to allow JSON data files - Add three new AI tests in apiTest/PotterAPI/AI/ Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
var express = require('express');
|
|
var basicAuth = require('express-basic-auth');
|
|
let jwt = require('jsonwebtoken');
|
|
var boolParser = require('express-query-boolean');
|
|
var cors = require('cors');
|
|
|
|
module.exports = verifyToken;
|
|
var app = express();
|
|
const port = 3000
|
|
|
|
app.use(express.json())
|
|
app.use(boolParser());
|
|
app.use(cors());
|
|
|
|
|
|
const spellRoute = require('./routes/spells.js');
|
|
app.use('/spells', spellRoute);
|
|
|
|
const houseRoute = require('./routes/houses.js');
|
|
app.use('/houses', houseRoute);
|
|
|
|
const characterRoute = require('./routes/characters.js');
|
|
app.use('/characters', characterRoute)
|
|
|
|
const sortingHatRoute = require('./routes/sortinghat.js');
|
|
app.use('/sortingHat', sortingHatRoute);
|
|
|
|
const quote = require('./routes/quote.js');
|
|
app.use('/quote', quote);
|
|
|
|
app.get('/login', basicAuth({
|
|
users: { 'admin': 'supersecret' },
|
|
}), (req, res) => {
|
|
const user = {
|
|
username: 'furboslav',
|
|
id: 5,
|
|
}
|
|
generateToken(user, res);
|
|
});
|
|
|
|
generateToken = function (user, res) {
|
|
jwt.sign({ user: user }, 'secretkey', (err, token) => {
|
|
res.json({
|
|
token: token
|
|
});
|
|
});
|
|
}
|
|
|
|
function verifyToken(req, res, next) {
|
|
const bearerHeader = req.header('Authorization');
|
|
if (typeof bearerHeader !== 'undefined') {
|
|
const bearer = bearerHeader.split(' ');
|
|
const bearerToken = bearer[1];
|
|
req.token = bearerToken;
|
|
next();
|
|
}
|
|
else {
|
|
res.status(403)
|
|
res.json({
|
|
message: "Sorry Wizard you dont have TOKEN"
|
|
});
|
|
}
|
|
}
|
|
|
|
app.listen(port, () => console.log(`Harry Potter App listening on port ${port}!`))
|
|
|