import * as mysql from "mysql"; export interface User { id: number, username: string, userid: string, quota: number, } export async function connectToDb(): Promise { return new Promise((resolve, reject) => { const connection: mysql.Connection = mysql.createConnection({ host: process.env.MYSQL_HOST, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE, }) connection.connect((error) => { if (error) { reject(error) } resolve(connection); }); }) } export async function addUser(connection: mysql.Connection, username: string, userid: string): Promise { return new Promise((resolve, reject) => { connection.query(`INSERT INTO users (username, userid, quota) VALUES ("${username}", "${userid}", 0)`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) } export async function getUser(connection: mysql.Connection, userid: string): Promise { return new Promise((resolve, reject) => { connection.query(`SELECT * FROM users WHERE userid = "${userid}"`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) } export async function incrementQuota(connection: mysql.Connection, userid: string, value: number): Promise { return new Promise((resolve, reject) => { connection.query(`UPDATE users SET quota = quota + ${value} WHERE userid = "${userid}"`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) } export function resetQuota(connection: mysql.Connection) { return new Promise((resolve, reject) => { connection.query(`UPDATE users SET quota = 0`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) } export function getguild(connection: mysql.Connection, guild_id: string): Promise { return new Promise((resolve, reject) => { connection.query(`SELECT * FROM guilds WHERE guild_id = "${guild_id}"`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) } export function addGuild(connection: mysql.Connection, guild_id: string) { return new Promise((resolve, reject) => { connection.query(`INSERT INTO guilds (guild_id) VALUES ("${guild_id}")`, (error, result) => { if (error) { reject(error); } resolve(result); }) }) }