diff --git a/src/handlers/implants.ts b/src/handlers/implants.ts index 08919c3afca3165bbbef0997578e4cad48b0c09c..7e81b92bb964694718e079058dfd82b2a267a75b 100644 --- a/src/handlers/implants.ts +++ b/src/handlers/implants.ts @@ -2,11 +2,11 @@ import { type Request, type Response } from 'express'; import { implantsTable } from '@/db/schema'; import { db } from "@/db"; import { eq } from 'drizzle-orm'; -import { implantSchema } from '@/validators/implantsValidator'; +import { implantSchema, updateImplantSchema } from '@/validators/implantsValidator'; export default class implant{ static implantRequestValidation (req: Request){ - const validation = implantSchema.safeParse(req.body); + const validation = updateImplantSchema.safeParse(req.body); return validation.success; } @@ -19,13 +19,19 @@ export default class implant{ return searched[0] || null; } - static async implantRead(id: number, req: Request, res: Response){ - if (!this.implantRequestValidation(req)) + static async implantRead(req: Request, res: Response){ + if (!implant.implantRequestValidation(req)) { return res.status(400).json({ error: "Invalid Request"}); } - const holder = await this.getImplant(id); + const { id } = req.params; + const parsedId = parseInt(id, 10); + if (isNaN(parsedId)) { + return res.status(400).json({ error: "ID inválido" }); + } + + const holder = await implant.getImplant(parsedId); if (!holder) { return res.status(404).json({ error: "Not Found"}); @@ -35,13 +41,19 @@ export default class implant{ } - static async implantUpdate(id: number, req: Request, res: Response){ - if (!this.implantRequestValidation(req)) + static async implantUpdate(req: Request, res: Response){ + if (!implant.implantRequestValidation(req)) { return res.status(400).json({ error: "Invalid Request"}); } - const updated_implant = await this.getImplant(id); + const { id } = req.params; + const parsedId = parseInt(id, 10); + if (isNaN(parsedId)) { + return res.status(400).json({ error: "ID inválido" }); + } + + const updated_implant = await implant.getImplant(parsedId); if (!updated_implant) { return res.status(404).json({ error: "Not Found"}); @@ -55,7 +67,7 @@ export default class implant{ }; try{ - await db.update(implantsTable).set(updates).where(eq(implantsTable.id, id)); + await db.update(implantsTable).set(updates).where(eq(implantsTable.id, parsedId)); } catch (error) { return res.status (500).json({ error: "Update User Error"}) } @@ -63,19 +75,25 @@ export default class implant{ return res.status(200).json({ message: "OK"}); } - static async implantDelete(id: number, req: Request, res: Response){ - if (!this.implantRequestValidation(req)) + static async implantDelete(req: Request, res: Response){ + if (!implant.implantRequestValidation(req)) { return res.status(400).json("Invalid Request"); } - if (!this.getImplant(id)) + const { id } = req.params; + const parsedId = parseInt(id, 10); + if (isNaN(parsedId)) { + return res.status(400).json({ error: "ID inválido" }); + } + + if (!implant.getImplant(parsedId)) { return res.status(404).json("Not Found"); } try{ - await db.delete(implantsTable).where(eq(implantsTable.id, id)); + await db.delete(implantsTable).where(eq(implantsTable.id, parsedId)); return res.status(200).json({ message: "Implant removed successfully"}); } catch (error) { return res.status(500).json({ error: "Implant Removal Error"}); @@ -83,7 +101,7 @@ export default class implant{ } static async implantCreate(req: Request, res: Response){ - const implant_package = this.implantRequestUnzip(req); + const implant_package = implant.implantRequestUnzip(req);setInterval if (!implant_package.success) { return res.status(400).json("Invalid Request"); diff --git a/src/handlers/user.ts b/src/handlers/user.ts index f4adb5d32d2d534f731e938f6d9b1c0127244c05..8f8ce48a37be3a69d299e75abb0089433c9ee3f0 100644 --- a/src/handlers/user.ts +++ b/src/handlers/user.ts @@ -133,7 +133,7 @@ export default class User{ static readUser = async (req: Request, res: Response): Promise<any> => { try { - // extrair id e nome da requisição + // extrair id da requisição const { id } = req.params; // converter id para número @@ -182,7 +182,7 @@ export default class User{ return res.status(401).json({ message: 'Senha incorreta' }); } - // criar chave secreta para assinar e validar tokens, guardar no .env + // acessar no .env a chave secreta para assinar e validar tokens const jwtSecret = process.env["APP_SECRET"]; if (!jwtSecret) { return res.status(500).json({ error: "Chave secreta do JWT não configurada" });