forked from noxious/server
added zod for easier validation (wip)
This commit is contained in:
@ -2,14 +2,21 @@ import { Socket, Server } from "socket.io";
|
||||
import {TSocket} from "../types/TSocket";
|
||||
import {Character} from "@prisma/client";
|
||||
import CharacterRepository from "../repositories/CharacterRepository";
|
||||
import {ZCharacterCreate} from "../types/zod/CharacterCreate";
|
||||
|
||||
export default function CharacterCreate(socket: TSocket, io: Server) {
|
||||
socket.on('character:create', async (data: any) => {
|
||||
let user_id = socket.user?.id as number;
|
||||
// zod validate
|
||||
try {
|
||||
data = ZCharacterCreate.parse(data);
|
||||
|
||||
let character: Character = await CharacterRepository.create(user_id, data.name) as Character;
|
||||
let characters: Character[] = await CharacterRepository.getByUserId(user_id) as Character[];
|
||||
let user_id = socket.user?.id as number;
|
||||
let character: Character = await CharacterRepository.create(user_id, data.name) as Character;
|
||||
let characters: Character[] = await CharacterRepository.getByUserId(user_id) as Character[];
|
||||
|
||||
socket.emit('character:list', characters);
|
||||
socket.emit('character:list', characters);
|
||||
} catch (error: any) {
|
||||
return socket.emit('notification', {error: error.errors[0].message});
|
||||
}
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user