1
0
forked from noxious/server

Greatly improved server code base

This commit is contained in:
2024-12-28 17:26:17 +01:00
parent bd85908014
commit bd3bf6f580
39 changed files with 227 additions and 246 deletions

View File

@ -6,37 +6,37 @@ class CharacterHairRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.findOne({ id: { $exists: true } }, { populate: ['*'] })
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
appLogger.error(`Failed to get first character hair: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getAll() {
async getAll(): Promise<CharacterHair[]> {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.findAll({ populate: ['*'] })
return await repository.findAll()
} catch (error: any) {
appLogger.error(`Failed to get all character hair: ${error instanceof Error ? error.message : String(error)}`)
return null
return []
}
}
async getAllSelectable() {
async getAllSelectable(): Promise<CharacterHair[]> {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.find({ isSelectable: true }, { populate: ['*'] })
return await repository.find({ isSelectable: true })
} catch (error: any) {
appLogger.error(`Failed to get selectable character hair: ${error instanceof Error ? error.message : String(error)}`)
return null
return []
}
}
async getById(id: number) {
async getById(id: number): Promise<CharacterHair | null> {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
appLogger.error(`Failed to get character hair by ID: ${error instanceof Error ? error.message : String(error)}`)
return null

View File

@ -6,7 +6,7 @@ class CharacterRepository extends BaseRepository {
async getByUserId(userId: number): Promise<Character[]> {
try {
const repository = this.em.getRepository(Character)
return await repository.find({ user: userId }, { populate: ['*'] })
return await repository.find({ user: userId })
} catch (error: any) {
appLogger.error(`Failed to get character by user ID: ${error instanceof Error ? error.message : String(error)}`)
return []
@ -16,17 +16,17 @@ class CharacterRepository extends BaseRepository {
async getByUserAndId(userId: number, characterId: number): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
return await repository.findOne({ user: userId, id: characterId }, { populate: ['*'] })
return await repository.findOne({ user: userId, id: characterId })
} catch (error: any) {
appLogger.error(`Failed to get character by user ID and character ID: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getById(id: number): Promise<Character | null> {
async getById(id: number, populate?: string[]): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
appLogger.error(`Failed to get character by ID: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -36,7 +36,7 @@ class CharacterRepository extends BaseRepository {
async getByName(name: string): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
return await repository.findOne({ name }, { populate: ['*'] })
return await repository.findOne({ name })
} catch (error: any) {
appLogger.error(`Failed to get character by name: ${error instanceof Error ? error.message : String(error)}`)
return null

View File

@ -6,7 +6,7 @@ class CharacterTypeRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.getRepository(CharacterType)
return await repository.findOne({ id: { $exists: true } }, { populate: ['*'] })
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
appLogger.error(`Failed to get first character type: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -16,7 +16,7 @@ class CharacterTypeRepository extends BaseRepository {
async getAll() {
try {
const repository = this.em.getRepository(CharacterType)
return await repository.findAll({ populate: ['*'] })
return await repository.findAll()
} catch (error: any) {
appLogger.error(`Failed to get all character types: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -26,7 +26,7 @@ class CharacterTypeRepository extends BaseRepository {
async getById(id: number) {
try {
const repository = this.em.getRepository(CharacterType)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
appLogger.error(`Failed to get character type by ID: ${error instanceof Error ? error.message : String(error)}`)
return null

View File

@ -6,12 +6,9 @@ class ChatRepository extends BaseRepository {
async getById(id: number): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
return await repository.find(
{
id
},
{ populate: ['*'] }
)
return await repository.find({
id
})
} catch (error: any) {
appLogger.error(`Failed to get chat by ID: ${error instanceof Error ? error.message : String(error)}`)
return []
@ -21,7 +18,7 @@ class ChatRepository extends BaseRepository {
async getAll(): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
return await repository.findAll({ populate: ['*'] })
return await repository.findAll()
} catch (error: any) {
appLogger.error(`Failed to get all chats: ${error instanceof Error ? error.message : String(error)}`)
return []
@ -31,7 +28,7 @@ class ChatRepository extends BaseRepository {
async getByCharacterId(characterId: number): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
return await repository.find({ character: characterId }, { populate: ['*'] })
return await repository.find({ character: characterId })
} catch (error: any) {
appLogger.error(`Failed to get chats by character ID: ${error instanceof Error ? error.message : String(error)}`)
return []
@ -41,7 +38,7 @@ class ChatRepository extends BaseRepository {
async getByZoneId(zoneId: number): Promise<Chat[]> {
try {
const repository = this.em.getRepository(Chat)
return await repository.find({ zone: zoneId }, { populate: ['*'] })
return await repository.find({ zone: zoneId })
} catch (error: any) {
appLogger.error(`Failed to get chats by zone ID: ${error instanceof Error ? error.message : String(error)}`)
return []

View File

@ -7,7 +7,7 @@ class SpriteRepository extends BaseRepository {
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>) {
try {
const repository = this.em.getRepository(Sprite)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
return null
}
@ -16,7 +16,7 @@ class SpriteRepository extends BaseRepository {
async getAll(): Promise<any> {
try {
const repository = this.em.getRepository(Sprite)
return await repository.findAll({ populate: ['*'] })
return await repository.findAll()
} catch (error: any) {
return null
}

View File

@ -2,9 +2,9 @@ import { FilterValue } from '@mikro-orm/core'
import { BaseRepository } from '#application/base/baseRepository'
import { unduplicateArray } from '#application/utilities'
import { FlattenZoneArray } from '#application/zone'
import { Tile } from '#entities/tile'
import { Zone } from '#entities/zone'
import ZoneService from '#services/zoneService'
class TileRepository extends BaseRepository {
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>): Promise<any> {
@ -44,7 +44,7 @@ class TileRepository extends BaseRepository {
const zone = await repository.findOne({ id: zoneId })
if (!zone) return null
const zoneTileArray = unduplicateArray(FlattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
const zoneTileArray = unduplicateArray(ZoneService.flattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
return await tileRepository.find({
id: zoneTileArray

View File

@ -6,7 +6,7 @@ class UserRepository extends BaseRepository {
async getById(id: number) {
try {
const repository = this.em.getRepository(User)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
appLogger.error(`Failed to get user by ID: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -16,7 +16,7 @@ class UserRepository extends BaseRepository {
async getByUsername(username: string) {
try {
const repository = this.em.getRepository(User)
return await repository.findOne({ username }, { populate: ['*'] })
return await repository.findOne({ username })
} catch (error: any) {
appLogger.error(`Failed to get user by username: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -26,7 +26,7 @@ class UserRepository extends BaseRepository {
async getByEmail(email: string) {
try {
const repository = this.em.getRepository(User)
return await repository.findOne({ email }, { populate: ['*'] })
return await repository.findOne({ email })
} catch (error: any) {
appLogger.error(`Failed to get user by email: ${error instanceof Error ? error.message : String(error)}`)
return null

View File

@ -8,7 +8,7 @@ class ZoneRepository extends BaseRepository {
async getFirst(): Promise<Zone | null> {
try {
const repository = this.em.getRepository(Zone)
return await repository.findOne({ id: { $exists: true } }, { populate: ['*'] })
return await repository.findOne({ id: { $exists: true } })
} catch (error: any) {
appLogger.error(`Failed to get first zone: ${error instanceof Error ? error.message : String(error)}`)
return null
@ -18,7 +18,7 @@ class ZoneRepository extends BaseRepository {
async getAll(): Promise<Zone[]> {
try {
const repository = this.em.getRepository(Zone)
return await repository.findAll({ populate: ['*'] })
return await repository.findAll()
} catch (error: any) {
appLogger.error(`Failed to get all zone: ${error.message}`)
return []
@ -28,7 +28,7 @@ class ZoneRepository extends BaseRepository {
async getById(id: number) {
try {
const repository = this.em.getRepository(Zone)
return await repository.findOne({ id }, { populate: ['*'] })
return await repository.findOne({ id })
} catch (error: any) {
appLogger.error(`Failed to get zone by id: ${error.message}`)
return null
@ -38,7 +38,7 @@ class ZoneRepository extends BaseRepository {
async getEventTiles(id: number): Promise<ZoneEventTile[]> {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.find({ zone: id }, { populate: ['*'] })
return await repository.find({ zone: id })
} catch (error: any) {
appLogger.error(`Failed to get zone event tiles: ${error.message}`)
return []
@ -48,14 +48,11 @@ class ZoneRepository extends BaseRepository {
async getFirstEventTile(zoneId: number, positionX: number, positionY: number): Promise<ZoneEventTile | null> {
try {
const repository = this.em.getRepository(ZoneEventTile)
return await repository.findOne(
{
zone: zoneId,
positionX: positionX,
positionY: positionY
},
{ populate: ['*'] }
)
return await repository.findOne({
zone: zoneId,
positionX: positionX,
positionY: positionY
})
} catch (error: any) {
appLogger.error(`Failed to get zone event tile: ${error.message}`)
return null
@ -65,7 +62,7 @@ class ZoneRepository extends BaseRepository {
async getZoneObjects(id: number): Promise<ZoneObject[]> {
try {
const repository = this.em.getRepository(ZoneObject)
return await repository.find({ zone: id }, { populate: ['*'] })
return await repository.find({ zone: id })
} catch (error: any) {
appLogger.error(`Failed to get zone objects: ${error.message}`)
return []