forked from noxious/server
Renamed zone > map
This commit is contained in:
@ -35,12 +35,12 @@ class ChatRepository extends BaseRepository {
|
||||
}
|
||||
}
|
||||
|
||||
async getByZoneId(zoneId: UUID): Promise<Chat[]> {
|
||||
async getByMapId(mapId: UUID): Promise<Chat[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Chat)
|
||||
return await repository.find({ zone: zoneId })
|
||||
return await repository.find({ map: mapId })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get chats by zone ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
this.logger.error(`Failed to get chats by map ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
33
src/repositories/mapEventTileRepository.ts
Normal file
33
src/repositories/mapEventTileRepository.ts
Normal file
@ -0,0 +1,33 @@
|
||||
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.em.getRepository(MapEventTile)
|
||||
return await repository.find({
|
||||
map: id
|
||||
})
|
||||
} 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.em.getRepository(MapEventTile)
|
||||
return await repository.findOne({
|
||||
map: mapId,
|
||||
positionX: positionX,
|
||||
positionY: positionY
|
||||
})
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get map event tile: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new MapEventTileRepository()
|
73
src/repositories/mapRepository.ts
Normal file
73
src/repositories/mapRepository.ts
Normal file
@ -0,0 +1,73 @@
|
||||
import { BaseRepository } from '#application/base/baseRepository'
|
||||
import { UUID } from '#application/types'
|
||||
import { Map } from '#entities/map'
|
||||
import { MapEventTile } from '#entities/mapEventTile'
|
||||
import { MapObject } from '#entities/mapObject'
|
||||
|
||||
class MapRepository extends BaseRepository {
|
||||
async getFirst(): Promise<Map | null> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Map)
|
||||
return await repository.findOne({ id: { $exists: true } })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get first map: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll(): Promise<Map[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Map)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get all map: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getById(id: UUID) {
|
||||
try {
|
||||
const repository = this.em.getRepository(Map)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get map by id: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getEventTiles(id: UUID): Promise<MapEventTile[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(MapEventTile)
|
||||
return await repository.find({ map: id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get map event tiles: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getFirstEventTile(mapId: UUID, positionX: number, positionY: number): Promise<MapEventTile | null> {
|
||||
try {
|
||||
const repository = this.em.getRepository(MapEventTile)
|
||||
return await repository.findOne({
|
||||
map: mapId,
|
||||
positionX: positionX,
|
||||
positionY: positionY
|
||||
})
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get map event tile: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getMapObjects(id: UUID): Promise<MapObject[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(MapObject)
|
||||
return await repository.find({ map: id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get map objects: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new MapRepository()
|
@ -4,8 +4,8 @@ import { BaseRepository } from '#application/base/baseRepository'
|
||||
import { UUID } from '#application/types'
|
||||
import { unduplicateArray } from '#application/utilities'
|
||||
import { Tile } from '#entities/tile'
|
||||
import { Zone } from '#entities/zone'
|
||||
import ZoneService from '#services/zoneService'
|
||||
import { Map } from '#entities/map'
|
||||
import MapService from '#services/mapService'
|
||||
|
||||
class TileRepository extends BaseRepository {
|
||||
async getById(id: UUID) {
|
||||
@ -37,18 +37,18 @@ class TileRepository extends BaseRepository {
|
||||
}
|
||||
}
|
||||
|
||||
async getByZoneId(zoneId: UUID) {
|
||||
async getByMapId(mapId: UUID) {
|
||||
try {
|
||||
const repository = this.em.getRepository(Zone)
|
||||
const repository = this.em.getRepository(Map)
|
||||
const tileRepository = this.em.getRepository(Tile)
|
||||
|
||||
const zone = await repository.findOne({ id: zoneId })
|
||||
if (!zone) return []
|
||||
const map = await repository.findOne({ id: mapId })
|
||||
if (!map) return []
|
||||
|
||||
const zoneTileArray = unduplicateArray(ZoneService.flattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
|
||||
const mapTileArray = unduplicateArray(MapService.flattenMapArray(JSON.parse(JSON.stringify(map.tiles))))
|
||||
|
||||
return await tileRepository.find({
|
||||
id: zoneTileArray
|
||||
id: mapTileArray
|
||||
})
|
||||
} catch (error: any) {
|
||||
return []
|
||||
|
@ -1,33 +0,0 @@
|
||||
import { BaseRepository } from '#application/base/baseRepository'
|
||||
import { UUID } from '#application/types'
|
||||
import { ZoneEventTile } from '#entities/zoneEventTile'
|
||||
|
||||
class ZoneEventTileRepository extends BaseRepository {
|
||||
async getAll(id: UUID): Promise<ZoneEventTile[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(ZoneEventTile)
|
||||
return await repository.find({
|
||||
zone: id
|
||||
})
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone event tiles: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getEventTileByZoneIdAndPosition(zoneId: UUID, positionX: number, positionY: number) {
|
||||
try {
|
||||
const repository = this.em.getRepository(ZoneEventTile)
|
||||
return await repository.findOne({
|
||||
zone: zoneId,
|
||||
positionX: positionX,
|
||||
positionY: positionY
|
||||
})
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone event tile: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new ZoneEventTileRepository()
|
@ -1,73 +0,0 @@
|
||||
import { BaseRepository } from '#application/base/baseRepository'
|
||||
import { UUID } from '#application/types'
|
||||
import { Zone } from '#entities/zone'
|
||||
import { ZoneEventTile } from '#entities/zoneEventTile'
|
||||
import { ZoneObject } from '#entities/zoneObject'
|
||||
|
||||
class ZoneRepository extends BaseRepository {
|
||||
async getFirst(): Promise<Zone | null> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Zone)
|
||||
return await repository.findOne({ id: { $exists: true } })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get first zone: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll(): Promise<Zone[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Zone)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get all zone: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getById(id: UUID) {
|
||||
try {
|
||||
const repository = this.em.getRepository(Zone)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone by id: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getEventTiles(id: UUID): Promise<ZoneEventTile[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(ZoneEventTile)
|
||||
return await repository.find({ zone: id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone event tiles: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getFirstEventTile(zoneId: UUID, positionX: number, positionY: number): Promise<ZoneEventTile | null> {
|
||||
try {
|
||||
const repository = this.em.getRepository(ZoneEventTile)
|
||||
return await repository.findOne({
|
||||
zone: zoneId,
|
||||
positionX: positionX,
|
||||
positionY: positionY
|
||||
})
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone event tile: ${error.message}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getZoneObjects(id: UUID): Promise<ZoneObject[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(ZoneObject)
|
||||
return await repository.find({ zone: id })
|
||||
} catch (error: any) {
|
||||
this.logger.error(`Failed to get zone objects: ${error.message}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new ZoneRepository()
|
Reference in New Issue
Block a user