forked from noxious/server
Added missing entities( zoneEffect, zoneEventTile, zoneEventTileTeleport, zoneObject)
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from './baseRepository'
|
||||
import { CharacterHair } from '#entities/characterHair'
|
||||
import { appLogger } from '#utilities/logger'
|
||||
|
||||
class CharacterHairRepository extends BaseRepository {
|
||||
async getAll() {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -1,21 +1,26 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { CharacterType } from '@prisma/client'
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { CharacterType } from '#entities/characterType'
|
||||
|
||||
class CharacterTypeRepository {
|
||||
async getAll(): Promise<CharacterType[]> {
|
||||
return prisma.characterType.findMany({
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
})
|
||||
class CharacterTypeRepository extends BaseRepository {
|
||||
async getAll() {
|
||||
try {
|
||||
const repository = this.em.getRepository(CharacterType)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get all character types: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
async getById(id: number): Promise<CharacterType | null> {
|
||||
return prisma.characterType.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
})
|
||||
|
||||
async getById(id: number) {
|
||||
try {
|
||||
const repository = this.em.getRepository(CharacterType)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get character type by ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,48 +1,52 @@
|
||||
import prisma from '#utilities/prisma'
|
||||
import { Chat } from '@prisma/client'
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { Chat } from '#entities/chat'
|
||||
|
||||
class ChatRepository {
|
||||
async getById(id: number): Promise<Chat | null> {
|
||||
return prisma.chat.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
character: true,
|
||||
zone: true
|
||||
}
|
||||
})
|
||||
class ChatRepository extends BaseRepository {
|
||||
async getById(id: number): Promise<Chat[]> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Chat)
|
||||
return await repository.find({
|
||||
id
|
||||
})
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get chat by ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getAll(): Promise<Chat[]> {
|
||||
return prisma.chat.findMany({
|
||||
include: {
|
||||
character: true,
|
||||
zone: true
|
||||
}
|
||||
})
|
||||
try {
|
||||
const repository = this.em.getRepository(Chat)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get all chats: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getByCharacterId(characterId: number): Promise<Chat[]> {
|
||||
return prisma.chat.findMany({
|
||||
where: {
|
||||
characterId
|
||||
},
|
||||
include: {
|
||||
character: true,
|
||||
zone: true
|
||||
}
|
||||
})
|
||||
try {
|
||||
const repository = this.em.getRepository(Chat)
|
||||
return await repository.find({
|
||||
character: characterId
|
||||
})
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get chats by character ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
async getByZoneId(zoneId: number): Promise<Chat[]> {
|
||||
return prisma.chat.findMany({
|
||||
where: {
|
||||
zoneId
|
||||
},
|
||||
include: {
|
||||
character: true,
|
||||
zone: true
|
||||
}
|
||||
})
|
||||
try {
|
||||
const repository = this.em.getRepository(Chat)
|
||||
return await repository.find({
|
||||
zone: zoneId
|
||||
})
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get chats by zone ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,38 +1,38 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { Tile } from '@prisma/client'
|
||||
import zoneRepository from './zoneRepository'
|
||||
import { unduplicateArray } from '#utilities/utilities'
|
||||
import { FlattenZoneArray } from '#utilities/zone'
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { Item } from '#entities/item'
|
||||
|
||||
class ItemRepository {
|
||||
async getById(id: string) {
|
||||
return prisma.item.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
})
|
||||
class ItemRepository extends BaseRepository {
|
||||
async getById(id: string): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Item)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get item by ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getByIds(ids: string[]) {
|
||||
return prisma.item.findMany({
|
||||
where: {
|
||||
id: {
|
||||
in: ids
|
||||
}
|
||||
},
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
})
|
||||
async getByIds(ids: string[]): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Item)
|
||||
return await repository.find({
|
||||
id: ids
|
||||
})
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get items by IDs: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll() {
|
||||
return prisma.item.findMany({
|
||||
include: {
|
||||
sprite: true
|
||||
}
|
||||
})
|
||||
async getAll(): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Item)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
appLogger.error(`Failed to get all items: ${error instanceof Error ? error.message : String(error)}`)
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,22 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { Object } from '@prisma/client'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
|
||||
class ObjectRepository {
|
||||
async getById(id: string): Promise<Object | null> {
|
||||
return prisma.object.findUnique({
|
||||
where: { id }
|
||||
})
|
||||
class ObjectRepository extends BaseRepository {
|
||||
async getById(id: string): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Object)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll(): Promise<Object[]> {
|
||||
return prisma.object.findMany()
|
||||
async getAll(): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Object)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,14 +1,12 @@
|
||||
import prisma from '#utilities/prisma'
|
||||
import { appLogger } from '#utilities/logger' // Import the global Prisma instance
|
||||
import { appLogger } from '#utilities/logger'
|
||||
import { BaseRepository } from '#repositories/baseRepository' // Import the global Prisma instance
|
||||
import { PasswordResetToken } from '#entities/passwordResetToken'
|
||||
|
||||
class PasswordResetTokenRepository {
|
||||
class PasswordResetTokenRepository extends BaseRepository {
|
||||
async getById(id: number): Promise<any> {
|
||||
try {
|
||||
return await prisma.passwordResetToken.findUnique({
|
||||
where: {
|
||||
id
|
||||
}
|
||||
})
|
||||
const repository = this.em.getRepository(PasswordResetToken)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get password reset token by ID: ${error instanceof Error ? error.message : String(error)}`)
|
||||
@ -17,10 +15,9 @@ class PasswordResetTokenRepository {
|
||||
|
||||
async getByUserId(userId: number): Promise<any> {
|
||||
try {
|
||||
return await prisma.passwordResetToken.findFirst({
|
||||
where: {
|
||||
userId
|
||||
}
|
||||
const repository = this.em.getRepository(PasswordResetToken)
|
||||
return await repository.findOne({
|
||||
user: userId
|
||||
})
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
@ -30,11 +27,8 @@ class PasswordResetTokenRepository {
|
||||
|
||||
async getByToken(token: string): Promise<any> {
|
||||
try {
|
||||
return await prisma.passwordResetToken.findFirst({
|
||||
where: {
|
||||
token
|
||||
}
|
||||
})
|
||||
const repository = this.em.getRepository(PasswordResetToken)
|
||||
return await repository.findOne({ token })
|
||||
} catch (error: any) {
|
||||
// Handle error
|
||||
appLogger.error(`Failed to get password reset token by token: ${error instanceof Error ? error.message : String(error)}`)
|
||||
|
@ -1,31 +1,37 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { SpriteAction } from '@prisma/client'
|
||||
import { FilterValue } from '@mikro-orm/core'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { Sprite } from '#entities/sprite'
|
||||
|
||||
class SpriteRepository {
|
||||
async getById(id: string) {
|
||||
return prisma.sprite.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
})
|
||||
class SpriteRepository extends BaseRepository {
|
||||
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>) {
|
||||
try {
|
||||
const repository = this.em.getRepository(Sprite)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll() {
|
||||
return prisma.sprite.findMany({
|
||||
include: {
|
||||
spriteActions: true
|
||||
}
|
||||
})
|
||||
async getAll(): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Sprite)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getSpriteActions(spriteId: string): Promise<SpriteAction[]> {
|
||||
return prisma.spriteAction.findMany({
|
||||
where: {
|
||||
spriteId
|
||||
}
|
||||
})
|
||||
}
|
||||
// @TODO: THIS BROKEY
|
||||
// async getSpriteActions(spriteId: string): Promise<any> {
|
||||
// try {
|
||||
// const repository = this.em.getRepository(SpriteAction)
|
||||
// return await repository.find({
|
||||
// sprite: spriteId
|
||||
// })
|
||||
// } catch (error: any) {
|
||||
// return null
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
export default new SpriteRepository()
|
||||
|
@ -1,37 +1,52 @@
|
||||
import prisma from '#utilities/prisma' // Import the global Prisma instance
|
||||
import { Tile } from '@prisma/client'
|
||||
import zoneRepository from './zoneRepository'
|
||||
import { FilterValue } from '@mikro-orm/core'
|
||||
import { BaseRepository } from '#repositories/baseRepository'
|
||||
import { Tile } from '#entities/tile'
|
||||
import { Zone } from '#entities/zone'
|
||||
import { unduplicateArray } from '#utilities/utilities'
|
||||
import { FlattenZoneArray } from '#utilities/zone'
|
||||
|
||||
class TileRepository {
|
||||
async getById(id: string): Promise<Tile | null> {
|
||||
return prisma.tile.findUnique({
|
||||
where: { id }
|
||||
})
|
||||
class TileRepository extends BaseRepository {
|
||||
async getById(id: FilterValue<`${string}-${string}-${string}-${string}-${string}`>): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Tile)
|
||||
return await repository.findOne({ id })
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getByIds(ids: string[]): Promise<Tile[]> {
|
||||
return prisma.tile.findMany({
|
||||
where: {
|
||||
id: {
|
||||
in: ids
|
||||
}
|
||||
}
|
||||
})
|
||||
async getByIds(ids: FilterValue<`${string}-${string}-${string}-${string}-${string}`>): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Tile)
|
||||
return await repository.find({
|
||||
id: ids
|
||||
})
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getAll(): Promise<Tile[]> {
|
||||
return prisma.tile.findMany()
|
||||
async getAll(): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Tile)
|
||||
return await repository.findAll()
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async getByZoneId(zoneId: number): Promise<Tile[]> {
|
||||
const zone = await zoneRepository.getById(zoneId)
|
||||
if (!zone) return []
|
||||
|
||||
const zoneTileArray = unduplicateArray(FlattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
|
||||
|
||||
return this.getByIds(zoneTileArray)
|
||||
async getByZoneId(zoneId: number): Promise<any> {
|
||||
try {
|
||||
const repository = this.em.getRepository(Zone)
|
||||
const zone = await repository.findOne({ id: zoneId })
|
||||
if (!zone) return null
|
||||
const zoneTileArray = unduplicateArray(FlattenZoneArray(JSON.parse(JSON.stringify(zone.tiles))))
|
||||
return await repository.find({
|
||||
zone: zoneId
|
||||
})
|
||||
} catch (error: any) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user