import { DataSource } from 'typeorm'; import { BanEntity } from '../../../entities'; import { IsUserBannedQuery } from '../../types'; export async function handleIsUserBanned(query: IsUserBannedQuery, dataSource: DataSource): Promise { const repo = dataSource.getRepository(BanEntity); const now = Date.now(); const { userId, roomId } = query.payload; const rows = await repo .createQueryBuilder('ban') .where('ban.roomId = :roomId', { roomId }) .andWhere('(ban.expiresAt IS NULL OR ban.expiresAt > :now)', { now }) .getMany(); return rows.some((row) => row.userId === userId || (!row.userId && row.oderId === userId)); }