diff --git a/src/handlers/user.ts b/src/handlers/user.ts index a86c46231aa1954ed64e617379632534edcf3323..142dd6c5b8d2b0abb1588e89494beea7c5e0eacd 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 c769c8804eeb1fd83152d271ad1553f5c816c511..6a2111509216a83de687e2853dd58bf27987a858 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 621a6d64bb7f0b099fc77ed03cb9ee25724499b0..7592a0cbc31cd5f6d92666c9b71c0eb102ab185c 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()