forked from noxious/server
Added missing entities( zoneEffect, zoneEventTile, zoneEventTileTeleport, zoneObject)
This commit is contained in:
@ -1,127 +1,48 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { Character } from '#entities/character'
|
||||
|
||||
class CharacterRepository {
|
||||
async getByUserId(userId: number) {
|
||||
class CharacterRepository extends BaseRepository {
|
||||
async getByUserId(userId: number): Promise<Character[]> {
|
||||
try {
|
||||
return await prisma.character.findMany({
|
||||
where: {
|
||||
userId
|
||||
},
|
||||
include: {
|
||||
zone: true,
|
||||
characterType: {
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
},
|
||||
characterHair: {
|
||||
include: {
|
||||
sprite: {
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const repository = this.em.getRepository(Character)
|
||||
return await repository.find({
|
||||
user: userId
|
||||
})
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get character by user ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getByUserAndId(userId: number, characterId: number) {
|
||||
async getByUserAndId(userId: number, characterId: number): Promise<Character | null> {
|
||||
try {
|
||||
return await prisma.character.findFirst({
|
||||
where: {
|
||||
userId,
|
||||
id: characterId
|
||||
},
|
||||
include: {
|
||||
zone: true,
|
||||
characterType: {
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
},
|
||||
characterHair: {
|
||||
include: {
|
||||
sprite: {
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const repository = this.em.getRepository(Character)
|
||||
return await repository.findOne({
|
||||
user: userId,
|
||||
id: characterId
|
||||
})
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get character by user ID and character ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getById(id: number) {
|
||||
async getById(id: number): Promise<Character | null> {
|
||||
try {
|
||||
return await prisma.character.findUnique({
|
||||
where: {
|
||||
id
|
||||
},
|
||||
include: {
|
||||
zone: true,
|
||||
characterType: {
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
},
|
||||
characterHair: {
|
||||
include: {
|
||||
sprite: {
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
const repository = this.em.getRepository(Character)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get character by ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getByName(name: string) {
|
||||
async getByName(name: string): Promise<Character | null> {
|
||||
try {
|
||||
return await prisma.character.findFirst({
|
||||
where: {
|
||||
name
|
||||
},
|
||||
include: {
|
||||
zone: true,
|
||||
characterType: {
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
},
|
||||
characterHair: {
|
||||
include: {
|
||||
sprite: {
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
const repository = this.em.getRepository(Character)
|
||||
return await repository.findOne({ name })
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get character by name: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
|
Reference in New Issue
Block a user