forked from noxious/server
48 lines
1.6 KiB
TypeScript
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()
|