1
0
forked from noxious/server

OOP is my passion ( ͡° ͜ʖ ͡°)

This commit is contained in:
2025-01-04 18:35:53 +01:00
parent 0b4420f956
commit 067976c54a
46 changed files with 165 additions and 164 deletions

View File

@ -5,7 +5,7 @@ import { CharacterHair } from '#entities/characterHair'
class CharacterHairRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.getRepository(CharacterHair)
const repository = this.getEntityManager().getRepository(CharacterHair)
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
this.logger.error(`Failed to get first character hair: ${error instanceof Error ? error.message : String(error)}`)
@ -15,7 +15,7 @@ class CharacterHairRepository extends BaseRepository {
async getAll(): Promise<CharacterHair[]> {
try {
const repository = this.em.getRepository(CharacterHair)
const repository = this.getEntityManager().getRepository(CharacterHair)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all character hair: ${error instanceof Error ? error.message : String(error)}`)
@ -25,7 +25,7 @@ class CharacterHairRepository extends BaseRepository {
async getAllSelectable(populate?: any): Promise<CharacterHair[]> {
try {
const repository = this.em.getRepository(CharacterHair)
const repository = this.getEntityManager().getRepository(CharacterHair)
return await repository.find({ isSelectable: true }, { populate })
} catch (error: any) {
this.logger.error(`Failed to get selectable character hair: ${error instanceof Error ? error.message : String(error)}`)
@ -35,7 +35,7 @@ class CharacterHairRepository extends BaseRepository {
async getById(id: UUID): Promise<CharacterHair | null> {
try {
const repository = this.em.getRepository(CharacterHair)
const repository = this.getEntityManager().getRepository(CharacterHair)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get character hair by ID: ${error instanceof Error ? error.message : String(error)}`)
@ -44,4 +44,4 @@ class CharacterHairRepository extends BaseRepository {
}
}
export default new CharacterHairRepository()
export default CharacterHairRepository

View File

@ -3,20 +3,20 @@ import { UUID } from '#application/types'
import { Character } from '#entities/character'
class CharacterRepository extends BaseRepository {
async getByUserId(userId: UUID, populate?: any): Promise<Character[]> {
async getByUserId(userId: UUID): Promise<Character[]> {
try {
const repository = this.em.getRepository(Character)
return await repository.find({ user: userId }, { populate })
const repository = this.getEntityManager().getRepository(Character)
return await repository.find({ user: userId })
} catch (error: any) {
this.logger.error(`Failed to get character by user ID: ${error instanceof Error ? error.message : String(error)}`)
return []
}
}
async getByUserAndId(userId: UUID, characterId: UUID, populate?: any): Promise<Character | null> {
async getByUserAndId(userId: UUID, characterId: UUID): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
return await repository.findOne({ user: userId, id: characterId }, { populate })
const repository = this.getEntityManager().getRepository(Character)
return await repository.findOne({ user: userId, id: characterId })
} catch (error: any) {
this.logger.error(`Failed to get character by user ID and character ID: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -25,7 +25,7 @@ class CharacterRepository extends BaseRepository {
async getById(id: UUID, populate?: any): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
const repository = this.getEntityManager().getRepository(Character)
return await repository.findOne({ id }, { populate })
} catch (error: any) {
this.logger.error(`Failed to get character by ID: ${error instanceof Error ? error.message : String(error)}`)
@ -35,7 +35,7 @@ class CharacterRepository extends BaseRepository {
async getByName(name: string, populate?: any): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
const repository = this.getEntityManager().getRepository(Character)
return await repository.findOne({ name }, { populate })
} catch (error: any) {
this.logger.error(`Failed to get character by name: ${error instanceof Error ? error.message : String(error)}`)
@ -44,4 +44,4 @@ class CharacterRepository extends BaseRepository {
}
}
export default new CharacterRepository()
export default CharacterRepository

View File

@ -5,7 +5,7 @@ import { CharacterType } from '#entities/characterType'
class CharacterTypeRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.getRepository(CharacterType)
const repository = this.getEntityManager().getRepository(CharacterType)
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
this.logger.error(`Failed to get first character type: ${error instanceof Error ? error.message : String(error)}`)
@ -15,7 +15,7 @@ class CharacterTypeRepository extends BaseRepository {
async getAll() {
try {
const repository = this.em.getRepository(CharacterType)
const repository = this.getEntityManager().getRepository(CharacterType)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all character types: ${error instanceof Error ? error.message : String(error)}`)
@ -25,7 +25,7 @@ class CharacterTypeRepository extends BaseRepository {
async getById(id: UUID) {
try {
const repository = this.em.getRepository(CharacterType)
const repository = this.getEntityManager().getRepository(CharacterType)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get character type by ID: ${error instanceof Error ? error.message : String(error)}`)
@ -34,4 +34,4 @@ class CharacterTypeRepository extends BaseRepository {
}
}
export default new CharacterTypeRepository()
export default CharacterTypeRepository

View File

@ -5,7 +5,7 @@ import { Chat } from '#entities/chat'
class ChatRepository extends BaseRepository {
async getById(id: UUID): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
const repository = this.getEntityManager().getRepository(Chat)
return await repository.find({
id
})
@ -17,7 +17,7 @@ class ChatRepository extends BaseRepository {
async getAll(): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
const repository = this.getEntityManager().getRepository(Chat)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all chats: ${error instanceof Error ? error.message : String(error)}`)
@ -27,7 +27,7 @@ class ChatRepository extends BaseRepository {
async getByCharacterId(characterId: UUID): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
const repository = this.getEntityManager().getRepository(Chat)
return await repository.find({ character: characterId })
} catch (error: any) {
this.logger.error(`Failed to get chats by character ID: ${error instanceof Error ? error.message : String(error)}`)
@ -37,7 +37,7 @@ class ChatRepository extends BaseRepository {
async getByMapId(mapId: UUID): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
const repository = this.getEntityManager().getRepository(Chat)
return await repository.find({ map: mapId })
} catch (error: any) {
this.logger.error(`Failed to get chats by map ID: ${error instanceof Error ? error.message : String(error)}`)
@ -46,4 +46,4 @@ class ChatRepository extends BaseRepository {
}
}
export default new ChatRepository()
export default ChatRepository

View File

@ -5,7 +5,7 @@ import { Item } from '#entities/item'
class ItemRepository extends BaseRepository {
async getById(id: UUID): Promise<any> {
try {
const repository = this.em.getRepository(Item)
const repository = this.getEntityManager().getRepository(Item)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get item by ID: ${error instanceof Error ? error.message : String(error)}`)
@ -15,7 +15,7 @@ class ItemRepository extends BaseRepository {
async getByIds(ids: UUID[]): Promise<any> {
try {
const repository = this.em.getRepository(Item)
const repository = this.getEntityManager().getRepository(Item)
return await repository.find({
id: ids
})
@ -27,7 +27,7 @@ class ItemRepository extends BaseRepository {
async getAll(): Promise<any> {
try {
const repository = this.em.getRepository(Item)
const repository = this.getEntityManager().getRepository(Item)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all items: ${error instanceof Error ? error.message : String(error)}`)
@ -36,4 +36,4 @@ class ItemRepository extends BaseRepository {
}
}
export default new ItemRepository()
export default ItemRepository

View File

@ -5,7 +5,7 @@ import { MapEventTile } from '#entities/mapEventTile'
class MapEventTileRepository extends BaseRepository {
async getAll(id: UUID): Promise<MapEventTile[]> {
try {
const repository = this.em.getRepository(MapEventTile)
const repository = this.getEntityManager().getRepository(MapEventTile)
return await repository.find({
map: id
})
@ -17,7 +17,7 @@ class MapEventTileRepository extends BaseRepository {
async getEventTileByMapIdAndPosition(mapId: UUID, positionX: number, positionY: number) {
try {
const repository = this.em.getRepository(MapEventTile)
const repository = this.getEntityManager().getRepository(MapEventTile)
return await repository.findOne({
map: mapId,
positionX: positionX,
@ -30,4 +30,4 @@ class MapEventTileRepository extends BaseRepository {
}
}
export default new MapEventTileRepository()
export default MapEventTileRepository

View File

@ -5,7 +5,7 @@ import { MapObject } from '#entities/mapObject'
class MapObjectRepository extends BaseRepository {
async getById(id: UUID): Promise<MapObject | null> {
try {
const repository = this.em.getRepository(MapObject)
const repository = this.getEntityManager().getRepository(MapObject)
return await repository.findOne({ id })
} catch (error: any) {
return null
@ -14,7 +14,7 @@ class MapObjectRepository extends BaseRepository {
async getAll(): Promise<MapObject[]> {
try {
const repository = this.em.getRepository(MapObject)
const repository = this.getEntityManager().getRepository(MapObject)
return await repository.findAll()
} catch (error: any) {
return []
@ -22,4 +22,4 @@ class MapObjectRepository extends BaseRepository {
}
}
export default new MapObjectRepository()
export default MapObjectRepository

View File

@ -7,7 +7,7 @@ import { MapObject } from '#entities/mapObject'
class MapRepository extends BaseRepository {
async getFirst(): Promise<Map | null> {
try {
const repository = this.em.getRepository(Map)
const repository = this.getEntityManager().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)}`)
@ -17,7 +17,7 @@ class MapRepository extends BaseRepository {
async getAll(): Promise<Map[]> {
try {
const repository = this.em.getRepository(Map)
const repository = this.getEntityManager().getRepository(Map)
return await repository.findAll()
} catch (error: any) {
this.logger.error(`Failed to get all map: ${error.message}`)
@ -27,7 +27,7 @@ class MapRepository extends BaseRepository {
async getById(id: UUID) {
try {
const repository = this.em.getRepository(Map)
const repository = this.getEntityManager().getRepository(Map)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get map by id: ${error.message}`)
@ -37,7 +37,7 @@ class MapRepository extends BaseRepository {
async getEventTiles(id: UUID): Promise<MapEventTile[]> {
try {
const repository = this.em.getRepository(MapEventTile)
const repository = this.getEntityManager().getRepository(MapEventTile)
return await repository.find({ map: id })
} catch (error: any) {
this.logger.error(`Failed to get map event tiles: ${error.message}`)
@ -47,7 +47,7 @@ class MapRepository extends BaseRepository {
async getFirstEventTile(mapId: UUID, positionX: number, positionY: number): Promise<MapEventTile | null> {
try {
const repository = this.em.getRepository(MapEventTile)
const repository = this.getEntityManager().getRepository(MapEventTile)
return await repository.findOne({
map: mapId,
positionX: positionX,
@ -61,7 +61,7 @@ class MapRepository extends BaseRepository {
async getMapObjects(id: UUID): Promise<MapObject[]> {
try {
const repository = this.em.getRepository(MapObject)
const repository = this.getEntityManager().getRepository(MapObject)
return await repository.find({ map: id })
} catch (error: any) {
this.logger.error(`Failed to get map objects: ${error.message}`)
@ -70,4 +70,4 @@ class MapRepository extends BaseRepository {
}
}
export default new MapRepository()
export default MapRepository

View File

@ -5,7 +5,7 @@ import { PasswordResetToken } from '#entities/passwordResetToken'
class PasswordResetTokenRepository extends BaseRepository {
async getById(id: UUID): Promise<any> {
try {
const repository = this.em.getRepository(PasswordResetToken)
const repository = this.getEntityManager().getRepository(PasswordResetToken)
return await repository.findOne({ id })
} catch (error: any) {
// Handle error
@ -15,7 +15,7 @@ class PasswordResetTokenRepository extends BaseRepository {
async getByUserId(userId: UUID): Promise<any> {
try {
const repository = this.em.getRepository(PasswordResetToken)
const repository = this.getEntityManager().getRepository(PasswordResetToken)
return await repository.findOne({
user: userId
})
@ -27,7 +27,7 @@ class PasswordResetTokenRepository extends BaseRepository {
async getByToken(token: string): Promise<any> {
try {
const repository = this.em.getRepository(PasswordResetToken)
const repository = this.getEntityManager().getRepository(PasswordResetToken)
return await repository.findOne({ token })
} catch (error: any) {
// Handle error
@ -36,4 +36,4 @@ class PasswordResetTokenRepository extends BaseRepository {
}
}
export default new PasswordResetTokenRepository()
export default PasswordResetTokenRepository

View File

@ -5,7 +5,7 @@ import { Sprite } from '#entities/sprite'
class SpriteRepository extends BaseRepository {
async getById(id: UUID, populate?: any) {
try {
const repository = this.em.getRepository(Sprite)
const repository = this.getEntityManager().getRepository(Sprite)
return await repository.findOne({ id }, { populate })
} catch (error: any) {
return null
@ -14,7 +14,7 @@ class SpriteRepository extends BaseRepository {
async getAll(populate?: any): Promise<Sprite[]> {
try {
const repository = this.em.getRepository(Sprite)
const repository = this.getEntityManager().getRepository(Sprite)
return await repository.findAll({ populate })
} catch (error: any) {
return []
@ -22,4 +22,4 @@ class SpriteRepository extends BaseRepository {
}
}
export default new SpriteRepository()
export default SpriteRepository

View File

@ -3,14 +3,14 @@ import { FilterValue } from '@mikro-orm/core'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { unduplicateArray } from '#application/utilities'
import { Tile } from '#entities/tile'
import { Map } from '#entities/map'
import { Tile } from '#entities/tile'
import MapService from '#services/mapService'
class TileRepository extends BaseRepository {
async getById(id: UUID) {
try {
const repository = this.em.getRepository(Tile)
const repository = this.getEntityManager().getRepository(Tile)
return await repository.findOne({ id })
} catch (error: any) {
return null
@ -19,7 +19,7 @@ class TileRepository extends BaseRepository {
async getByIds(ids: UUID[]) {
try {
const repository = this.em.getRepository(Tile)
const repository = this.getEntityManager().getRepository(Tile)
return await repository.find({
id: ids
})
@ -30,7 +30,7 @@ class TileRepository extends BaseRepository {
async getAll() {
try {
const repository = this.em.getRepository(Tile)
const repository = this.getEntityManager().getRepository(Tile)
return await repository.findAll()
} catch (error: any) {
return []
@ -39,8 +39,8 @@ class TileRepository extends BaseRepository {
async getByMapId(mapId: UUID) {
try {
const repository = this.em.getRepository(Map)
const tileRepository = this.em.getRepository(Tile)
const repository = this.getEntityManager().getRepository(Map)
const tileRepository = this.getEntityManager().getRepository(Tile)
const map = await repository.findOne({ id: mapId })
if (!map) return []
@ -56,4 +56,4 @@ class TileRepository extends BaseRepository {
}
}
export default new TileRepository()
export default TileRepository

View File

@ -5,7 +5,7 @@ import { User } from '#entities/user'
class UserRepository extends BaseRepository {
async getById(id: UUID) {
try {
const repository = this.em.getRepository(User)
const repository = this.getEntityManager().getRepository(User)
return await repository.findOne({ id })
} catch (error: any) {
this.logger.error(`Failed to get user by ID: ${error instanceof Error ? error.message : String(error)}`)
@ -15,7 +15,7 @@ class UserRepository extends BaseRepository {
async getByUsername(username: string) {
try {
const repository = this.em.getRepository(User)
const repository = this.getEntityManager().getRepository(User)
return await repository.findOne({ username })
} catch (error: any) {
this.logger.error(`Failed to get user by username: ${error instanceof Error ? error.message : String(error)}`)
@ -25,7 +25,7 @@ class UserRepository extends BaseRepository {
async getByEmail(email: string) {
try {
const repository = this.em.getRepository(User)
const repository = this.getEntityManager().getRepository(User)
return await repository.findOne({ email })
} catch (error: any) {
this.logger.error(`Failed to get user by email: ${error instanceof Error ? error.message : String(error)}`)
@ -34,4 +34,4 @@ class UserRepository extends BaseRepository {
}
}
export default new UserRepository()
export default UserRepository

View File

@ -1,16 +1,15 @@
import { BaseRepository } from '#application/base/baseRepository'
import { gameLogger } from '#application/logger'
import { World } from '#entities/world'
class WorldRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.getRepository(World)
const repository = this.getEntityManager().getRepository(World)
return await repository.findOne({ date: { $exists: true } })
} catch (error: any) {
gameLogger.error(`Failed to get first world: ${error instanceof Error ? error.message : String(error)}`)
this.logger.error(`Failed to get first world: ${error instanceof Error ? error.message : String(error)}`)
}
}
}
export default new WorldRepository()
export default WorldRepository