diff options
| author | Pinapelz <yukais@pinapelz.com> | 2025-07-07 01:07:34 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2025-07-07 01:07:41 -0700 |
| commit | 7fe146f97ddd3f5a8d0c1a996a73cb296c28b9cc (patch) | |
| tree | 916d2645c6332fe582ca62572a497724e1c8474a /backend/src | |
| parent | 152894146b72830e48e800721ea6160228a9bdc1 (diff) | |
implement score deletion
Diffstat (limited to 'backend/src')
| -rw-r--r-- | backend/src/index.ts | 3 | ||||
| -rw-r--r-- | backend/src/routes/score.ts | 30 |
2 files changed, 32 insertions, 1 deletions
diff --git a/backend/src/index.ts b/backend/src/index.ts index ec38ee6..114dfac 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -54,7 +54,8 @@ app.get('/api/session', userRoutes.handleGetCurrentSession); app.get('/api/supportedGames', gameRoutes.handleGetSupportedGames); app.post('/api/uploadScore', requireAuth, scoreRoutes.handleScoreUpload); -app.get('/api/scores', scoreRoutes.handleGetScores); +app.get('/api/scores', requireAuth, scoreRoutes.handleGetScores); +app.delete('/api/scores', requireAuth, scoreRoutes.handleScoreDeletion); app.listen(port, () => { console.log(`Server listening on port ${port}`); diff --git a/backend/src/routes/score.ts b/backend/src/routes/score.ts index d0fdc56..54e4784 100644 --- a/backend/src/routes/score.ts +++ b/backend/src/routes/score.ts @@ -110,6 +110,36 @@ export const handleScoreUpload = async ( } }; +export const handleScoreDeletion = async ( + req: express.Request, + res: express.Response, +) => { + try { + const { userId, internalGameName, scoreId } = req.query; + if (!userId || !internalGameName || !scoreId) { + return res.status(400).json({ error: "Missing required parameters" }); + } + + const userIdNumber = parseInt(userId as string); + const scoreIdNumber = parseInt(scoreId as string); + + await prisma.score.deleteMany({ + where: { + userId: userIdNumber, + gameInternalName: internalGameName as string, + id: scoreIdNumber, + }, + }); + + res.status(200).json({ message: "Scores deleted successfully" }); + } catch (error) { + console.error("Score deletion endpoint error:", error); + res + .status(500) + .json({ error: "Internal server error. Unable to delete scores" }); + } +}; + export const handleGetScores = async ( req: express.Request, res: express.Response, |
