1
0
forked from noxious/server

Added populate attributes to functions

This commit is contained in:
2025-01-03 18:23:48 +01:00
parent 0c155347c4
commit 0cadbc33b9
4 changed files with 82 additions and 41 deletions

View File

@ -1,23 +1,22 @@
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { LoadHint, Populate } from '@mikro-orm/core'
class CharacterRepository extends BaseRepository {
async getByUserId(userId: UUID, populate?: LoadHint<Character, '*'>): Promise<Character[]> {
async getByUserId(userId: UUID, populate?: any): Promise<Character[]> {
try {
const repository = this.em.getRepository(Character)
return await repository.find({ user: userId }, { populate: populate as Populate<Character> })
return await repository.find({ user: userId }, { populate })
} 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): Promise<Character | null> {
async getByUserAndId(userId: UUID, characterId: UUID, populate?: any): Promise<Character | null> {
try {
const repository = this.em.getRepository(Character)
return await repository.findOne({ user: userId, id: characterId })
return await repository.findOne({ user: userId, id: characterId }, { populate })
} 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