server/src/app/events/CharacterDelete.ts

23 lines
876 B
TypeScript

import {Server} from "socket.io";
import {TSocket} from "../utilities/Types";
import {Character} from "@prisma/client";
import CharacterRepository from "../repositories/CharacterRepository";
import {ZCharacterDelete} from "../utilities/ZodTypes";
export default function CharacterCreate(socket: TSocket, io: Server) {
socket.on('character:delete', async (data: any) => {
// zod validate
try {
data = ZCharacterDelete.parse(data);
await CharacterRepository.delete(data.character_id);
let user_id = socket.user?.id as number;
let characters: Character[] = await CharacterRepository.getByUserId(user_id) as Character[];
socket.emit('character:list', characters);
} catch (error: any) {
return socket.emit('notification', {error: error.errors[0].message});
}
});
}