Skip to content
Snippets Groups Projects
Commit 56c72032 authored by Amanda Pollyanna da Silva Rodrigues's avatar Amanda Pollyanna da Silva Rodrigues
Browse files

Merge branch 'issue-none/testes-amanda' into 'develop'

CHANGE readUser e rota get

See merge request !16
parents d1d1293c dc472904
No related branches found
No related tags found
1 merge request!16CHANGE readUser e rota get
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" });
}
......
......@@ -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)
......
......@@ -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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment