import { eq } from "drizzle-orm"; import db, { actors, sessions } from ".."; export async function getUser(id: number) { const [result] = await db.select().from(actors).where(eq(actors.id, id)); return result; } export async function getUserByDiscordId(discordId: string) { const [result] = await db.select().from(actors).where(eq(actors.discordId, discordId)); return result; } export async function getUserSessions(id: number) { const result = await db.select().from(sessions).where(eq(sessions.userId, id)); return result; } export async function getSession(id: string) { const [result] = await db.select().from(sessions).where(eq(sessions.id, id)); return result; } export async function upsertUser(user: { username: string; displayName: string | null; id: string; avatar: string | null; }) { const [upsertedUser] = await db .insert(actors) .values({ discordId: user.id, username: user.username, displayName: user.displayName, avatar: user.avatar, createdAt: new Date(), updatedAt: new Date(), }) .onConflictDoUpdate({ target: actors.discordId, set: { username: user.username, displayName: user.displayName, avatar: user.avatar, updatedAt: new Date(), }, }) .returning(); return upsertedUser; } export async function anonymiseUser(id: number) { const result = await db .update(actors) .set({ username: `Anonymised User`, displayName: null, avatar: null, updatedAt: new Date(), }) .where(eq(actors.id, id)) .returning(); return result; }