sendou.ink/scripts/delete-badge.ts
Kalle fd48bced91
Migrate Prettier/Eslint/Stylelint setup to Biome (#1772)
* Initial

* CSS lint

* Test CI

* Add 1v1, 2v2, and 3v3 Tags (#1771)

* Initial

* CSS lint

* Test CI

* Rename step

---------

Co-authored-by: xi <104683822+ximk@users.noreply.github.com>
2024-06-24 13:07:17 +03:00

29 lines
669 B
TypeScript

import "dotenv/config";
import { db } from "~/db/sql";
import invariant from "~/utils/invariant";
import { logger } from "~/utils/logger";
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();
logger.info("done with deleting the badge");
}
void main();