mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-08-01 00:24:13 -05:00
36 lines
912 B
TypeScript
36 lines
912 B
TypeScript
import { db } from "~/db/sql";
|
|
import invariant from "~/utils/invariant";
|
|
import { logger } from "~/utils/logger";
|
|
|
|
const badgeId = process.argv[2]?.trim();
|
|
const discordIds = process.argv[3]?.trim();
|
|
|
|
invariant(discordIds, "id list of discord ids required (argument 1)");
|
|
invariant(badgeId, "display name of badge is required (argument 2)");
|
|
invariant(
|
|
discordIds.includes(","),
|
|
"discordIds must be a comma separated list of discord ids",
|
|
);
|
|
|
|
const users = discordIds.split(",");
|
|
|
|
for (const discordId of users) {
|
|
const user = await db
|
|
.selectFrom("User")
|
|
.select("id")
|
|
.where("discordId", "=", discordId)
|
|
.executeTakeFirst();
|
|
|
|
if (!user) {
|
|
logger.info(`User with discord id ${discordId} not found`);
|
|
continue;
|
|
}
|
|
|
|
await db
|
|
.insertInto("TournamentBadgeOwner")
|
|
.values({ badgeId: Number(badgeId), userId: user.id })
|
|
.execute();
|
|
}
|
|
|
|
logger.info(`Added ${users.length} owners to the badge`);
|