Skip to content
Snippets Groups Projects
Commit 1ae35809 authored by Ricardo's avatar Ricardo
Browse files

Merge branch 'develop' of gitlab.c3sl.ufpr.br:rpf23/treinamento-2025.1-backend into develop

parents fde52122 56c72032
No related branches found
No related tags found
No related merge requests found
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';
......@@ -114,7 +114,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);
......@@ -123,14 +123,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)
......
......@@ -11,3 +11,6 @@ export const userSchema = z.object({
cyberpsychosis: z.number(), // a definir restrições de validação
cyberLimit: z.number(),
});
// 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.
Please register or to comment