17 lines
602 B
TypeScript
17 lines
602 B
TypeScript
import { DataSource } from 'typeorm';
|
|
import { BanEntity } from '../../../entities';
|
|
import { GetBansForRoomQuery } from '../../types';
|
|
import { rowToBan } from '../../mappers';
|
|
|
|
export async function handleGetBansForRoom(query: GetBansForRoomQuery, dataSource: DataSource) {
|
|
const repo = dataSource.getRepository(BanEntity);
|
|
const now = Date.now();
|
|
const rows = await repo
|
|
.createQueryBuilder('ban')
|
|
.where('ban.roomId = :roomId', { roomId: query.payload.roomId })
|
|
.andWhere('(ban.expiresAt IS NULL OR ban.expiresAt > :now)', { now })
|
|
.getMany();
|
|
|
|
return rows.map(rowToBan);
|
|
}
|