const mysql = require('mysql2') const logger = require('./logger')() require('dotenv').config() // Authenticates with SQL server and send query class Database { constructor(x) { this.pool = this.#CreatePool(x) this.pool.on('acquire', (connection) => {logger.Info('Connection acquired from pool')}) } async Query(x) { try { return await this.pool.query(x) } catch (err) { if (err.code === 'ECONNREFUSED') { logger.Error(`Database connection failed: ${err.message}`) } else { logger.Error(`Failed to query database: ${err.message}`) } return null } } #CreatePool(x) { return mysql.createPool({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: x }).promise() } } module.exports = (x) => {return new Database(x)}