apps/migration/src/save-users.ts (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
import type { GuildMemberResponse, Snowflake, UserResponse } from "@purrkit/types";
import db, { actors, users } from "@stealth-developers/db";
import fs from "node:fs";
type Data = Record<Snowflake, GuildMemberResponse>;
const file = fs.readFileSync("./members/filtered-map.json", "utf-8");
const memberData: Data = JSON.parse(file);
const GUILD_ID = 1;
for (const member of Object.values(memberData)) {
const [user] = await db
.insert(users)
.values({
discordId: member.user.id,
displayName: member.nick ?? member.user.global_name,
username: member.user.username,
avatar: member.user.avatar,
createdAt: new Date(),
updatedAt: new Date(),
})
.onConflictDoNothing()
.returning();
if (user) {
const [actor] = await db
.insert(actors)
.values({
userId: user.id,
guildId: GUILD_ID,
discordId: user.discordId,
username: user.username,
displayName: user.displayName,
avatar: user.avatar,
createdAt: new Date(),
updatedAt: new Date(),
})
.onConflictDoNothing()
.returning();
if (actor) {
console.log(`actor inserted for member ${member.user.id}`);
}
} else {
console.warn(`no user inserted for member ${member.user.id}`);
}
}
const userFile = fs.readFileSync("./members/filtered-users.json", "utf-8");
const userData: UserResponse[] = JSON.parse(userFile);
for (const user of userData) {
const [dbUser] = await db
.insert(users)
.values({
discordId: user.id,
displayName: user.global_name,
username: user.username,
avatar: user.avatar,
createdAt: new Date(),
updatedAt: new Date(),
})
.onConflictDoNothing()
.returning();
if (dbUser) {
const [actor] = await db
.insert(actors)
.values({
userId: dbUser.id,
guildId: GUILD_ID,
discordId: dbUser.discordId,
username: dbUser.username,
displayName: dbUser.displayName,
avatar: dbUser.avatar,
createdAt: new Date(),
updatedAt: new Date(),
})
.onConflictDoNothing()
.returning();
if (actor) {
console.log(`actor inserted for member ${user.id}`);
} else {
console.warn(`no actor inserted for member ${user.id}`);
}
} else {
console.warn(`no user inserted for member ${user.id}`);
}
}
|