23 lines
876 B
TypeScript
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});
|
|
}
|
|
});
|
|
} |