joclud-app/back/api/v1/games/addHelper.js

49 lines
No EOL
1.4 KiB
JavaScript

const express = require('express');
const jwt = require('jsonwebtoken');
const { getConnection, addHelper, getGame, getHelpers } = require("../../../libs/mysql.js")
const router = express.Router();
router.post('/', async (req, res) => {
const {token, gameid} = req.body;
if (!token) {
return res.status(400).send({error: "invalid token"});
}
if (!gameid) {
return res.status(400).send({error: "invalid gameid"});
}
try {
const user = jwt.verify(token, process.env.JWTSecret);
if (user.expiration < Date.now()) {
return res.status(400).send({error: "token expired"});
}
const connection = await getConnection();
const game = await getGame(connection, gameid);
if (!game[0]) {
return res.status(400).send({error: "this game doesn't exist"});
}
const helpers = await getHelpers(connection, gameid);
if (JSON.stringify(helpers).includes(user.user.id)) {
return res.status(400).send({error: "you are already an helper for this game"});
}
await addHelper(connection, gameid, user.user.id);
connection.end();
} catch (error) {
console.log(error);
return res.status(400).send({error: "invalid token"});
}
res.status(200).send({message: "success"});
});
module.exports = router;