import { Server } from 'socket.io' import { TSocket } from '../../../../utilities/types' import { Tile } from '@prisma/client' import TileRepository from '../../../../repositories/tileRepository' import characterRepository from '../../../../repositories/characterRepository' interface IPayload {} export default class TileListEvent { constructor( private readonly io: Server, private readonly socket: TSocket ) {} public listen(): void { this.socket.on('gm:tile:list', this.handleTileList.bind(this)) } private async handleTileList(data: any, callback: (response: Tile[]) => void): Promise { const character = await characterRepository.getById(this.socket.characterId as number) if (!character) return if (character.role !== 'gm') { return } // get all tiles const tiles = await TileRepository.getAll() callback(tiles) } }