aboutsummaryrefslogtreecommitdiffstats
path: root/backend/src/routes/score.ts
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-07-07 01:07:34 -0700
committerPinapelz <yukais@pinapelz.com>2025-07-07 01:07:41 -0700
commit7fe146f97ddd3f5a8d0c1a996a73cb296c28b9cc (patch)
tree916d2645c6332fe582ca62572a497724e1c8474a /backend/src/routes/score.ts
parent152894146b72830e48e800721ea6160228a9bdc1 (diff)
implement score deletion
Diffstat (limited to 'backend/src/routes/score.ts')
-rw-r--r--backend/src/routes/score.ts30
1 files changed, 30 insertions, 0 deletions
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,
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage