1
0
forked from noxious/server

Added base repository, updated char. hair repo and user repo

This commit is contained in:
2024-12-25 01:15:30 +01:00
parent bc58d41c54
commit d299528c26
3 changed files with 69 additions and 48 deletions

View File

@ -1,29 +1,44 @@
import prisma from '#utilities/prisma' // Import the global Prisma instance
import { CharacterHair } from '@prisma/client'
import { BaseRepository } from './baseRepository'
import { CharacterHair } from '#entities/characterHair'
import { appLogger } from '#utilities/logger'
class CharacterHairRepository {
async getAll(): Promise<CharacterHair[]> {
return prisma.characterHair.findMany()
class CharacterHairRepository extends BaseRepository {
async getAll() {
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.findAll()
} catch (error: any) {
appLogger.error(`Failed to get all character hair: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
async getAllSelectable(): Promise<CharacterHair[]> {
return prisma.characterHair.findMany({
where: {
async getAllSelectable() {
try {
const repository = this.em.getRepository(CharacterHair)
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
}
}
async getById(id: number) {
return prisma.characterHair.findUnique({
where: { id },
include: {
sprite: {
include: {
spriteActions: true
}
try {
const repository = this.em.getRepository(CharacterHair)
return await repository.findOne(
{ id },
{
populate: ['sprite.spriteActions']
}
}
})
)
} catch (error: any) {
appLogger.error(`Failed to get character hair by ID: ${error instanceof Error ? error.message : String(error)}`)
return null
}
}
}
export default new CharacterHairRepository()
export default new CharacterHairRepository()