1
0
forked from noxious/server

Temp. fix for populating

This commit is contained in:
Dennis Postma 2025-01-03 21:41:37 +01:00
parent 4d50edd5dd
commit e843213b0a
4 changed files with 8 additions and 9 deletions

View File

@ -23,7 +23,7 @@ export class CharacterHair extends BaseEntity {
@Property() @Property()
isSelectable = false isSelectable = false
@ManyToOne({ nullable: true }) @ManyToOne()
sprite?: Sprite sprite?: Sprite
setId(id: UUID) { setId(id: UUID) {

View File

@ -26,7 +26,7 @@ export class CharacterType extends BaseEntity {
@Property() @Property()
isSelectable = false isSelectable = false
@ManyToOne({ nullable: true }) @ManyToOne()
sprite?: Sprite sprite?: Sprite
@Property() @Property()

View File

@ -17,7 +17,7 @@ export class Item extends BaseEntity {
@Property() @Property()
name!: string name!: string
@Property({ nullable: true }) @Property()
description?: string description?: string
@Enum(() => ItemType) @Enum(() => ItemType)
@ -29,7 +29,7 @@ export class Item extends BaseEntity {
@Enum(() => ItemRarity) @Enum(() => ItemRarity)
rarity: ItemRarity = ItemRarity.COMMON rarity: ItemRarity = ItemRarity.COMMON
@ManyToOne(() => Sprite, { nullable: true }) @ManyToOne(() => Sprite, )
sprite?: Sprite sprite?: Sprite
@Property() @Property()

View File

@ -1,7 +1,6 @@
import { BaseRepository } from '#application/base/baseRepository' import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types' import { UUID } from '#application/types'
import { Character } from '#entities/character' import { Character } from '#entities/character'
import { RequiredEntityData } from '@mikro-orm/core'
class CharacterRepository extends BaseRepository { class CharacterRepository extends BaseRepository {
async getByUserId(userId: UUID, populate?: any): Promise<Character[]> { async getByUserId(userId: UUID, populate?: any): Promise<Character[]> {
@ -24,20 +23,20 @@ class CharacterRepository extends BaseRepository {
} }
} }
async getById(id: UUID, populate?: string[]): Promise<Character | null> { async getById(id: UUID, populate?: any): Promise<Character | null> {
try { try {
const repository = this.em.getRepository(Character) const repository = this.em.getRepository(Character)
return await repository.findOne({ id }) return await repository.findOne({ id }, { populate })
} catch (error: any) { } catch (error: any) {
this.logger.error(`Failed to get character by ID: ${error instanceof Error ? error.message : String(error)}`) this.logger.error(`Failed to get character by ID: ${error instanceof Error ? error.message : String(error)}`)
return null return null
} }
} }
async getByName(name: string): Promise<Character | null> { async getByName(name: string, populate?: any): Promise<Character | null> {
try { try {
const repository = this.em.getRepository(Character) const repository = this.em.getRepository(Character)
return await repository.findOne({ name }) return await repository.findOne({ name }, { populate })
} catch (error: any) { } catch (error: any) {
this.logger.error(`Failed to get character by name: ${error instanceof Error ? error.message : String(error)}`) this.logger.error(`Failed to get character by name: ${error instanceof Error ? error.message : String(error)}`)
return null return null