Bug fix for register, added delete character logic (WIP), npm update
This commit is contained in:
parent
ad11004f74
commit
267e61cc7f
6
package-lock.json
generated
6
package-lock.json
generated
@ -250,9 +250,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.12.13",
|
"version": "20.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.13.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.13.0.tgz",
|
||||||
"integrity": "sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==",
|
"integrity": "sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"undici-types": "~5.26.4"
|
"undici-types": "~5.26.4"
|
||||||
|
@ -2,7 +2,7 @@ import { Socket, Server } from "socket.io";
|
|||||||
import {TSocket} from "../types/TSocket";
|
import {TSocket} from "../types/TSocket";
|
||||||
import {Character} from "@prisma/client";
|
import {Character} from "@prisma/client";
|
||||||
import CharacterRepository from "../repositories/CharacterRepository";
|
import CharacterRepository from "../repositories/CharacterRepository";
|
||||||
import {ZCharacterCreate} from "../types/zod/CharacterCreate";
|
import {ZCharacterCreate} from "../types/zod/Character";
|
||||||
|
|
||||||
export default function CharacterCreate(socket: TSocket, io: Server) {
|
export default function CharacterCreate(socket: TSocket, io: Server) {
|
||||||
socket.on('character:create', async (data: any) => {
|
socket.on('character:create', async (data: any) => {
|
||||||
|
23
src/app/events/CharacterDelete.ts
Normal file
23
src/app/events/CharacterDelete.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import { Socket, Server } from "socket.io";
|
||||||
|
import {TSocket} from "../types/TSocket";
|
||||||
|
import {Character} from "@prisma/client";
|
||||||
|
import CharacterRepository from "../repositories/CharacterRepository";
|
||||||
|
import {ZCharacterDelete} from "../types/zod/Character";
|
||||||
|
|
||||||
|
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});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
@ -46,6 +46,19 @@ class CharacterRepository {
|
|||||||
throw new Error(`Failed to create character: ${error.message}`);
|
throw new Error(`Failed to create character: ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async delete(id: number): Promise<Character | null> {
|
||||||
|
try {
|
||||||
|
return await prisma.character.delete({
|
||||||
|
where: {
|
||||||
|
id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} catch (error: any) {
|
||||||
|
// Handle error
|
||||||
|
throw new Error(`Failed to delete character: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default new CharacterRepository;
|
export default new CharacterRepository;
|
@ -2,4 +2,8 @@ import { z } from 'zod';
|
|||||||
|
|
||||||
export const ZCharacterCreate = z.object({
|
export const ZCharacterCreate = z.object({
|
||||||
name: z.string().min(3).max(255)
|
name: z.string().min(3).max(255)
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZCharacterDelete = z.object({
|
||||||
|
character_id: z.number()
|
||||||
});
|
});
|
@ -31,7 +31,7 @@ async function addAuthRoutes(app: Application) {
|
|||||||
|
|
||||||
if (user) {
|
if (user) {
|
||||||
const token = jwt.sign({ id: user.id }, config.JWT_SECRET, { expiresIn: '1h' });
|
const token = jwt.sign({ id: user.id }, config.JWT_SECRET, { expiresIn: '1h' });
|
||||||
return res.status(201).json({ token });
|
return res.status(200).json({ token });
|
||||||
}
|
}
|
||||||
return res.status(400).json({ message: 'Failed to register user' });
|
return res.status(400).json({ message: 'Failed to register user' });
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user