17 lines
617 B
TypeScript
17 lines
617 B
TypeScript
import { DataSource } from 'typeorm';
|
|
import { BanEntity } from '../../../entities';
|
|
import { IsUserBannedQuery } from '../../types';
|
|
|
|
export async function handleIsUserBanned(query: IsUserBannedQuery, dataSource: DataSource): Promise<boolean> {
|
|
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.oderId === userId);
|
|
}
|