1
0
forked from noxious/server
noxious_server/src/repositories/characterHairRepository.ts
2025-01-01 21:37:02 +01:00

48 lines
1.6 KiB
TypeScript

import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { CharacterHair } from '#entities/characterHair'
class CharacterHairRepository extends BaseRepository {
async getFirst() {
try {
const repository = this.em.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)}`)
return null
}
}
async getAll(): Promise<CharacterHair[]> {
try {
const repository = this.em.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)}`)
return []
}
}
async getAllSelectable(): Promise<CharacterHair[]> {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.find({ isSelectable: true })
} catch (error: any) {
this.logger.error(`Failed to get selectable character hair: ${error instanceof Error ? error.message : String(error)}`)
return []
}
}
async getById(id: UUID): Promise<CharacterHair | null> {
try {
const repository = this.em.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)}`)
return null
}
}
}
export default new CharacterHairRepository()