From 2d2f1dc84c2d5ea7b05829ea490ca85377a07b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Losada=20Hern=C3=A1ndez?= Date: Thu, 26 Dec 2024 21:39:35 +0100 Subject: [PATCH] This initial commit should work --- server/app.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/server/app.js b/server/app.js index 4dec6b4c4..73e461793 100644 --- a/server/app.js +++ b/server/app.js @@ -376,6 +376,31 @@ app.put('/api/user/rename', async (req, res)=>{ } }); +//Delete brews based on author +app.delete('/api/user/delete', async (req, res)=>{ + const { username } = req.body; + const ownAccount = req.account && (req.account.username == username); + + if(!username) + return res.status(400).json({ error: 'Username and newUsername are required.' }); + if(!ownAccount) + return res.status(403).json({ error: 'Must be logged in to change your username' }); + + try { + const brews = await HomebrewModel.getByUser(username, true, ['authors']); + await brews.forEach((brew)=>{ + request.delete(`/api/${brew.googleId ?? ''}${brew.editId}`).send().end((err, res)=>{ + if (err) reportError(err); + }); + }); + + return res.json({ success: true, message: `Brews for ${username} renamed to ${newUsername}.` }); + } catch (error) { + console.error('Error renaming brews:', error); + return res.status(500).json({ error: 'Failed to rename brews.' }); + } +}); + //Edit Page app.get('/edit/:id', asyncHandler(getBrew('edit')), asyncHandler(async(req, res, next)=>{ req.brew = req.brew.toObject ? req.brew.toObject() : req.brew;