Added rename of Game, Wall and Category

This commit is contained in:
2026-01-02 12:35:59 +01:00
parent 1940d67c37
commit 832ff99a7b

View File

@@ -83,13 +83,16 @@ export function initGames(app, db) {
app.post('/game', createGame);
app.delete('/game/:gameid', deleteGameRoute);
app.get('/games', fetchGames);
app.post('/game/rename', renameGame);
app.get('/wall', fetchWall);
app.get('/walls/:gameid', fetchWalls);
app.post('/wall', createWall);
app.delete('/wall/:wallid', deleteWallRoute);
app.post('/wall/rename', renameWall);
app.get('/category', fetchCategory);
app.post('/category/rename', renameCategory);
app.get('/question', fetchQuestion);
}
@@ -122,6 +125,54 @@ async function createGame(req, res) {
});
}
/**
*
* @param {import('express').Request} req
* @param {import('express').Response} res
*/
function renameGame(req, res) {
if (!checkStringProp(req.body, 'name')) {
res.sendStatus(400);
return;
}
if (!checkStringProp(req.body, 'gameid')) {
res.sendStatus(400);
return;
}
/**
* @type {string}
*/
let gameid = req.body.gameid;
let _id = new ObjectId(gameid);
let name = req.body.name;
cGames
.updateOne(
{
_id,
owner: req.user._id,
},
{
$set: {
name,
},
},
)
.then((result) => {
if (result.modifiedCount === 1) res.sendStatus(200);
else {
console.error(
`Failed to modify exactly one Document. Instead modified: ${result.modifiedCount}`,
);
res.sendStatus(400);
}
})
.catch((err) => {
console.error(err);
res.sendStatus(500);
});
}
/**
*
* @param {import('express').Request} req
@@ -260,6 +311,54 @@ async function fetchCategory(req, res) {
}
}
/**
*
* @param {import('express').Request} req
* @param {import('express').Response} res
*/
function renameCategory(req, res) {
if (!checkStringProp(req.body, 'name')) {
res.sendStatus(400);
return;
}
if (!checkStringProp(req.body, 'categoryid')) {
res.sendStatus(400);
return;
}
/**
* @type {string}
*/
let categoryid = req.body.categoryid;
let _id = new ObjectId(categoryid);
let name = req.body.name;
cCategories
.updateOne(
{
_id,
owner: req.user._id,
},
{
$set: {
name,
},
},
)
.then((result) => {
if (result.modifiedCount === 1) res.sendStatus(200);
else {
console.error(
`Failed to modify exactly one Document. Instead modified: ${result.modifiedCount}`,
);
res.sendStatus(400);
}
})
.catch((err) => {
console.error(err);
res.sendStatus(500);
});
}
/**
*
* @param {import('express').Request} req
@@ -310,6 +409,54 @@ async function fetchWalls(req, res) {
res.status(200).send(await fetchedWalls.toArray());
}
/**
*
* @param {import('express').Request} req
* @param {import('express').Response} res
*/
function renameWall(req, res) {
if (!checkStringProp(req.body, 'name')) {
res.sendStatus(400);
return;
}
if (!checkStringProp(req.body, 'wallid')) {
res.sendStatus(400);
return;
}
/**
* @type {string}
*/
let wallid = req.body.wallid;
let _id = new ObjectId(wallid);
let name = req.body.name;
cWalls
.updateOne(
{
_id,
owner: req.user._id,
},
{
$set: {
name,
},
},
)
.then((result) => {
if (result.modifiedCount === 1) res.sendStatus(200);
else {
console.error(
`Failed to modify exactly one Document. Instead modified: ${result.modifiedCount}`,
);
res.sendStatus(400);
}
})
.catch((err) => {
console.error(err);
res.sendStatus(500);
});
}
/**
*
* @param {import('express').Request} req