From 47a68c4856b28e4251d9e96f48658a2cf2e5550f Mon Sep 17 00:00:00 2001 From: Joao Maria Araujo do Nascimento <1724026@ifrn.local> Date: Thu, 21 May 2026 22:21:38 -0300 Subject: [PATCH] =?UTF-8?q?Conex=C3=A3o=20com=20banco=20e=20in=C3=ADcio=20?= =?UTF-8?q?de=20repository?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/.env-example | 7 +++++++ backend/config/database.js | 19 +++++++++++++++++++ backend/repositories/usuarioRepository.js | 18 ++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 backend/.env-example create mode 100644 backend/config/database.js create mode 100644 backend/repositories/usuarioRepository.js diff --git a/backend/.env-example b/backend/.env-example new file mode 100644 index 0000000..0996ae2 --- /dev/null +++ b/backend/.env-example @@ -0,0 +1,7 @@ +PORT=5000 + +DB_HOST= +DB_PORT= +DB_USER= +DB_PASSWORD= +DB_NAME= \ No newline at end of file diff --git a/backend/config/database.js b/backend/config/database.js new file mode 100644 index 0000000..7aa1154 --- /dev/null +++ b/backend/config/database.js @@ -0,0 +1,19 @@ +import mysql from "mysql2/promise"; +import dotenv from "dotenv"; + +dotenv.config(); + +export const pool = mysql.createPool({ + host : process.env.DB_HOST, + port : process.env.DB_PORT, + user: process.env.DB_USER, + database: process.env.DB_NAME, + password: process.env.DB_PASSWORD, + waitForConnections: true, + connectionLimit: 10 +}); + +export async function query(sql, params = []){ + const [rows] = await pool.execute(sql, params); + return rows; +} \ No newline at end of file diff --git a/backend/repositories/usuarioRepository.js b/backend/repositories/usuarioRepository.js new file mode 100644 index 0000000..957df12 --- /dev/null +++ b/backend/repositories/usuarioRepository.js @@ -0,0 +1,18 @@ +import {query} from "../config/database.js"; + +export async function findAll() { + return query(`select usuario.id, usuario.nome, usuario.email, perfil.nome + from usuario inner join perfil on + usuario.perfil_id = perfil.id + where usuario.ativo = true`) +} + +export async function findById(id) { + return query(`select usuario.id, usuario.nome, usuario.email, perfil.nome + from usuario inner join perfil on + usuario.perfil_id = perfil.id + where usuario.ativo = true and usuario.id = ?`, + [id]) +} + +