forked from noxious/server
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { BaseRepository } from '#application/base/baseRepository'
|
|
import { UUID } from '#application/types'
|
|
import { MapEventTile } from '#entities/mapEventTile'
|
|
|
|
class MapEventTileRepository extends BaseRepository {
|
|
async getAll(id: UUID): Promise<MapEventTile[]> {
|
|
try {
|
|
const repository = this.getEntityManager().getRepository(MapEventTile)
|
|
const results = await repository.find({ map: id })
|
|
for (const result of results) result.setEntityManager(this.getEntityManager())
|
|
|
|
return results
|
|
} catch (error: any) {
|
|
this.logger.error(`Failed to get map event tiles: ${error.message}`)
|
|
return []
|
|
}
|
|
}
|
|
|
|
async getEventTileByMapIdAndPosition(mapId: UUID, positionX: number, positionY: number) {
|
|
try {
|
|
const repository = this.getEntityManager().getRepository(MapEventTile)
|
|
const result = await repository.findOne({
|
|
map: mapId,
|
|
positionX: positionX,
|
|
positionY: positionY
|
|
})
|
|
if (result) result.setEntityManager(this.getEntityManager())
|
|
|
|
return result
|
|
} catch (error: any) {
|
|
this.logger.error(`Failed to get map event tile: ${error.message}`)
|
|
return null
|
|
}
|
|
}
|
|
}
|
|
|
|
export default MapEventTileRepository
|