Convert item create to new ORM

This commit is contained in:
Colin Kallemein 2025-01-04 22:29:56 +01:00
parent 50c2b249f4
commit 6b12d8e7b1

View File

@ -1,14 +1,7 @@
import { Server } from 'socket.io' import { BaseEvent } from '#application/base/baseEvent'
import { Item } from '#entities/item'
import prisma from '#application/prisma' export default class ItemCreateEvent extends BaseEvent {
import { TSocket } from '#application/types'
import characterRepository from '#repositories/characterRepository'
export default class ItemCreateEvent {
constructor(
private readonly io: Server,
private readonly socket: TSocket
) {}
public listen(): void { public listen(): void {
this.socket.on('gm:item:create', this.handleEvent.bind(this)) this.socket.on('gm:item:create', this.handleEvent.bind(this))
@ -16,27 +9,15 @@ export default class ItemCreateEvent {
private async handleEvent(data: undefined, callback: (response: boolean, item?: any) => void): Promise<void> { private async handleEvent(data: undefined, callback: (response: boolean, item?: any) => void): Promise<void> {
try { try {
const character = await characterRepository.getById(this.socket.characterId as number) if (!(await this.isCharacterGM())) return
if (!character) return callback(false)
if (character.role !== 'gm') { const newItem = new Item()
return callback(false) await newItem.setName('New Item').setItemType('WEAPON').setStackable(false).setRarity('COMMON').setSprite(null).save()
}
const newItem = await prisma.item.create({ return callback(true, newItem)
data: {
name: 'New Item',
itemType: 'WEAPON',
stackable: false,
rarity: 'COMMON',
spriteId: null
}
})
callback(true, newItem)
} catch (error) { } catch (error) {
console.error('Error creating item:', error) console.error('Error creating item:', error)
callback(false) return callback(false)
} }
} }
} }