chore: Initial commit of Opencord base state

This commit is contained in:
Jannis Braun
2026-02-18 02:49:21 +01:00
commit 4fd17084a5
124 changed files with 17955 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
import { eq, and } from 'drizzle-orm';
import { getDb, schema } from '../db/index.js';
import type { MemberRole } from '@opencord/shared';
export function getMember(serverId: string, userId: string) {
const db = getDb();
return db.select().from(schema.serverMembers)
.where(and(
eq(schema.serverMembers.serverId, serverId),
eq(schema.serverMembers.userId, userId),
))
.get();
}
export function isMember(serverId: string, userId: string): boolean {
return getMember(serverId, userId) !== undefined;
}
export function getMemberRole(serverId: string, userId: string): MemberRole | null {
const member = getMember(serverId, userId);
return member ? (member.role as MemberRole) : null;
}
export function isOwner(serverId: string, userId: string): boolean {
const role = getMemberRole(serverId, userId);
return role === 'owner';
}
export function isAdmin(serverId: string, userId: string): boolean {
const role = getMemberRole(serverId, userId);
return role === 'owner' || role === 'admin';
}
export function isServerOwner(serverId: string, userId: string): boolean {
const db = getDb();
const server = db.select().from(schema.servers).where(eq(schema.servers.id, serverId)).get();
return server?.ownerId === userId;
}
export function getChannelServerId(channelId: string): string | null {
const db = getDb();
const channel = db.select().from(schema.channels).where(eq(schema.channels.id, channelId)).get();
return channel?.serverId ?? null;
}
export function isDmMember(dmChannelId: string, userId: string): boolean {
const db = getDb();
const member = db.select().from(schema.dmMembers)
.where(and(
eq(schema.dmMembers.dmChannelId, dmChannelId),
eq(schema.dmMembers.userId, userId),
))
.get();
return member !== undefined;
}