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 { type Request, type Response } from 'express';
import { userSchema } from "@/validators/userValidator"; import { userSchema, updateUserSchema } from "@/validators/userValidator";
import { db } from "@/db"; import { db } from "@/db";
import { or, eq } from 'drizzle-orm'; import { eq } from 'drizzle-orm';
import { usersTable } from "@/db/schema"; import { usersTable } from "@/db/schema";
import bcrypt from "bcrypt"; import bcrypt from "bcrypt";
import jwt from 'jsonwebtoken'; import jwt from 'jsonwebtoken';
...@@ -113,7 +113,7 @@ export default class User{ ...@@ -113,7 +113,7 @@ export default class User{
try { try {
// extrair id e nome da requisição // extrair id e nome da requisição
const { id, name } = req.params; const { id } = req.params;
// converter id para número // converter id para número
const parsedId = parseInt(id, 10); const parsedId = parseInt(id, 10);
...@@ -122,14 +122,13 @@ export default class User{ ...@@ -122,14 +122,13 @@ export default class User{
} }
// validar com o Zod // validar com o Zod
const parsedData = userSchema.safeParse({ id: parsedId, name }); const parsedData = updateUserSchema.safeParse({ id: parsedId });
if (!parsedData.success) { if (!parsedData.success) {
return res.status(400).json({ error: "Dados Inválidos", details: parsedData.error.errors }); return res.status(400).json({ error: "Dados Inválidos", details: parsedData.error.errors });
} }
const result = await db.select().from(usersTable) const result = await db.select().from(usersTable)
.where(or(eq(usersTable.id, parsedId), eq(usersTable.name, name))) .where( eq(usersTable.id, parsedId) ).limit(1);
.limit(1);
if (result.length === 0) { // array vazio if (result.length === 0) { // array vazio
return res.status(404).json({ error: "Usuário não encontrado" }); return res.status(404).json({ error: "Usuário não encontrado" });
} }
......
...@@ -15,7 +15,7 @@ app.use(json()) ...@@ -15,7 +15,7 @@ app.use(json())
// Rotas de usuário // Rotas de usuário
app.post('/addUser', User.createUser) app.post('/addUser', User.createUser)
app.get('/getUser', User.readUser) app.get('/getUser/:id', User.readUser)
app.post('/loginUser', User.loginUser) app.post('/loginUser', User.loginUser)
app.put('/updateUser/:id', tokenAuthenticator, User.updateUser) app.put('/updateUser/:id', tokenAuthenticator, User.updateUser)
app.delete('/deleteUser/:id', tokenAuthenticator, User.deleteUser) app.delete('/deleteUser/:id', tokenAuthenticator, User.deleteUser)
......
...@@ -11,3 +11,6 @@ export const userSchema = z.object({ ...@@ -11,3 +11,6 @@ export const userSchema = z.object({
cyberpsychosis: z.number(), // a definir restrições de validação cyberpsychosis: z.number(), // a definir restrições de validação
cyberLimit: z.number(), 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