const mysql = require('mysql2/promise') require('dotenv').config() module.exports = rewardRedemption = (async (viewer_id, viewer_name) => { // Create a connection to the MySQL database const connection = await mysql.createConnection({ host: process.env.MYSQL_HOST, port: process.env.MYSQL_PORT, user: process.env.MYSQL_USER, password: process.env.MYSQL_PASSWORD, database: process.env.MYSQL_DATABASE }) const result = {} // Check if the viewer already exists in the rewards table await connection.query('SELECT * FROM rewards WHERE viewer_id = ?', [viewer_id]) .then(async ([rows, fields]) => { if (rows.length === 0) { // Viewer doesn't exist, insert a new row let sql_data = { viewer_id, viewer_name, count: 1, current_count: 1 } await connection.query('INSERT INTO rewards SET ?', sql_data).catch(error => { console.error(error) }) return result.status = 'insert_entry' } else { // Viewer exists, update the count result.count = rows[0].count + 1 result.current_count = rows[0].current_count + 1 let sql_data = { count: result.count, current_count: result.current_count } await connection.query('UPDATE rewards SET ? WHERE viewer_id = ?', [sql_data, viewer_id]).catch(error => { console.error(error) }) return result.status = 'update_entry' } }).catch(error => { console.error(error) }) // Terminate the connection to the database await connection.end() //return [newRow.current_count, newRow.count] return result })