diff --git a/src/handlers/user.ts b/src/handlers/user.ts index 1b8651e5e5e777e7bda6c7d68db1dc325381ce3b..02b1ac88029805bf00e5100263c143f4f6dfdf1d 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 { db } from "@/db"; -import { eq } from 'drizzle-orm'; +import { or, eq } from 'drizzle-orm'; import { usersTable } from "@/db/schema"; import bcrypt from "bcryptjs"; import { z } from 'zod'; @@ -109,3 +109,28 @@ export const createUser = async (req: Request, res: Response) => { return res.status(500).json({ error: "Erro ao inserir o usuário. Por favor, tente novamente mais tarde." }); } }; + + export const readUser = async (req: Request, res: Response) => { + try { + + const { id, nome } = req.params; //extracao da requisicao + + const parsedData = userSchema.safeParse({ id, nome }); + + 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, id), eq(usersTable.nome, nome))).limit(1); + + if (result.length === 0) { //array vazio + return res.status(404).json({ error: "Usuário não encontrado" }); + } + + delete result[0].password; + + return res.status(200).json(result[0]); + } catch (error) { + console.error(error); + return res.status(500).json({ error: "Erro ao buscar o usuário. Por favor, tente novamente mais tarde." }); + } + } \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 9e649ea743f5cff64777ade2b9b5ed5778199bed..b062d0376a77a7b5907a22dec3483d4e35f9b936 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,6 @@ import express, { urlencoded, json } from 'express' import dotenv from 'dotenv' -import { createUser } from './handlers/user'; +import { createUser, readUser } from './handlers/user'; import Implant from '@/handlers/implants' import { Auth } from '@/middleware/auth' @@ -15,6 +15,7 @@ app.use(json()) // Rotas de usuário app.post('/addUser', createUser) +app.get('/getUser', readUser) // Definir a porta e iniciar o servidor const PORT = process.env['PORT'] || 3000