sendou.ink/scripts/fc-lookup.ts
2024-04-14 14:02:33 +03:00

39 lines
969 B
TypeScript

import "dotenv/config";
import invariant from "tiny-invariant";
import { db } from "~/db/sql";
import { logger } from "~/utils/logger";
const friendCode = process.argv[2]?.trim();
invariant(friendCode, "friend code is required (argument 1)");
async function main() {
const allFcs = await db
.selectFrom("UserFriendCode")
.innerJoin("User", "User.id", "UserFriendCode.userId")
.select([
"UserFriendCode.friendCode",
"User.id as userId",
"User.discordId",
"User.discordUniqueName",
])
.orderBy("UserFriendCode.createdAt", "asc")
.whereRef("User.id", "=", "UserFriendCode.submitterUserId")
.execute();
const matches = allFcs.filter((fc) => fc.friendCode === friendCode);
if (matches.length === 0) {
logger.info("No matches found");
return;
}
for (const match of matches) {
logger.info(
`${match.friendCode} - ${match.discordUniqueName} - ${match.discordId}`,
);
}
}
void main();