From dc472904a88b03b221622bf53fa80df7d71dc709 Mon Sep 17 00:00:00 2001 From: apsr23 <apsr23@inf.ufpr.br> Date: Fri, 21 Mar 2025 09:58:29 -0300 Subject: [PATCH] CHANGE readUser e rota get --- src/handlers/user.ts | 11 +++++------ src/index.ts | 2 +- src/validators/userValidator.ts | 5 ++++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/handlers/user.ts b/src/handlers/user.ts index a86c462..142dd6c 100644 --- a/src/handlers/user.ts +++ b/src/handlers/user.ts @@ -1,7 +1,7 @@ import { type Request, type Response } from 'express'; -import { userSchema } from "@/validators/userValidator"; +import { userSchema, updateUserSchema } from "@/validators/userValidator"; import { db } from "@/db"; -import { or, eq } from 'drizzle-orm'; +import { eq } from 'drizzle-orm'; import { usersTable } from "@/db/schema"; import bcrypt from "bcrypt"; import jwt from 'jsonwebtoken'; @@ -113,7 +113,7 @@ export default class User{ try { // extrair id e nome da requisição - const { id, name } = req.params; + const { id } = req.params; // converter id para número const parsedId = parseInt(id, 10); @@ -122,14 +122,13 @@ export default class User{ } // validar com o Zod - const parsedData = userSchema.safeParse({ id: parsedId, name }); + const parsedData = updateUserSchema.safeParse({ id: parsedId }); if (!parsedData.success) { return res.status(400).json({ error: "Dados Inválidos", details: parsedData.error.errors }); } const result = await db.select().from(usersTable) - .where(or(eq(usersTable.id, parsedId), eq(usersTable.name, name))) - .limit(1); + .where( eq(usersTable.id, parsedId) ).limit(1); if (result.length === 0) { // array vazio return res.status(404).json({ error: "Usuário não encontrado" }); } diff --git a/src/index.ts b/src/index.ts index c769c88..6a21115 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,7 +15,7 @@ app.use(json()) // Rotas de usuário app.post('/addUser', User.createUser) -app.get('/getUser', User.readUser) +app.get('/getUser/:id', User.readUser) app.post('/loginUser', User.loginUser) app.put('/updateUser/:id', tokenAuthenticator, User.updateUser) app.delete('/deleteUser/:id', tokenAuthenticator, User.deleteUser) diff --git a/src/validators/userValidator.ts b/src/validators/userValidator.ts index 621a6d6..7592a0c 100644 --- a/src/validators/userValidator.ts +++ b/src/validators/userValidator.ts @@ -10,4 +10,7 @@ export const userSchema = z.object({ money: z.number().nonnegative(), cyberpsychosis: z.number(), // a definir restrições de validação cyberLimit: z.number(), -}); \ No newline at end of file +}); + +// Esquema de validação para atualização (todos os campos opcionais) +export const updateUserSchema = userSchema.partial() -- GitLab