const mysql = require("mysql"); function getConnection() { return mysql.createConnection({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE, }); } // +-------------------------------+ // | Users | // +-------------------------------+ function addUser(connection, name, lastname, email, numero, password) { return new Promise((resolve, reject) => { connection.query( `INSERT INTO users (name, lastname, email, numero, password) VALUES (?, ?, ?, ?, ?)`, [name, lastname, email, numero, password], (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } function getUsers(connection) { return new Promise((resolve, reject) => { connection.query( `SELECT * FROM users`, (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } function getUser(connection, id) { return new Promise((resolve, reject) => { connection.query( `SELECT * FROM users WHERE id = ?`, [id], (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } function getUserByEmail(connection, email) { return new Promise((resolve, reject) => { connection.query( `SELECT * FROM users WHERE email = ?`, [email], (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } // +-------------------------------+ // | Accounts | // +-------------------------------+ function getUserAccounts(connection, id) { return new Promise((resolve, reject) => { connection.query( `SELECT * FROM accounts WHERE client_id = ?`, [id], (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } // +-------------------------------+ // | Cards | // +-------------------------------+ function getUserCards(connection, id) { return new Promise((resolve, reject) => { connection.query( `SELECT cards.* FROM cards JOIN accounts ON cards.account_id = accounts.id WHERE client_id = ?`, [id], (error, result) => { if (error) { reject(new Error(error)); } resolve(result); } ); }); } module.exports = { getConnection, addUser, getUsers, getUser, getUserByEmail, getUserAccounts, getUserCards, };