From 38743d4b4caf913e8ce0b53bbf589992aeb7f0eb Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 10 Mar 2024 14:50:28 +0200 Subject: [PATCH] Delete badge script Closes #1691 --- scripts/delete-badge.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 scripts/delete-badge.ts diff --git a/scripts/delete-badge.ts b/scripts/delete-badge.ts new file mode 100644 index 000000000..3d6623a6b --- /dev/null +++ b/scripts/delete-badge.ts @@ -0,0 +1,28 @@ +/* eslint-disable no-console */ +import "dotenv/config"; +import invariant from "tiny-invariant"; +import { db } from "~/db/sql"; + +const rawId = process.argv[2]?.trim(); + +invariant(rawId, "id of badge is required (argument 1)"); + +const id = Number(rawId); + +invariant(!Number.isNaN(id), "id must be a number"); + +async function main() { + const owners = await db + .selectFrom("BadgeOwner") + .select(["badgeId"]) + .where("BadgeOwner.badgeId", "=", id) + .execute(); + + invariant(owners.length === 0, "Badge is still owned by someone"); + + await db.deleteFrom("Badge").where("id", "=", id).execute(); + + console.log("done with deleting the badge"); +} + +void main();