UNPKG

gigaaa-chatbot-auth-extended

Version:
82 lines (73 loc) 2.51 kB
var mysql = require('mysql'); module.exports = { initDb: initDb, getUser: getUser, updateUser: updateUser, createUser: createUser, deleteUser: deleteUser } // DB instance var pool = null; async function initDb(dbHost, dbUser, dbPassword, dbName) { pool = mysql.createPool({ connectionLimit: 10, host: dbHost, user: dbUser, password: dbPassword, database: dbName }); } async function getUser(userId, idType) { return new Promise((resolve, reject) => { pool.query(`SELECT * FROM gigaaa.users WHERE ${idType}ID = '${userId}'`, function (error, results, fields) { if (error) { return reject(error); } resolve(results.length ? results[0] : null) }); }) } async function updateUser(userId, idType, propertiesToUpdate, valuesToUpdate) { let query = `UPDATE gigaaa.users SET ${propertiesToUpdate[0]} = ${valuesToUpdate[0] ? `'${valuesToUpdate[0]}'` : 'NULL'}`; if (propertiesToUpdate.length > 1) { for (let i = 1; i < propertiesToUpdate.length; i++) { query = query + `, ${propertiesToUpdate[i]} = ${valuesToUpdate[i] ? `'${valuesToUpdate[i]}'` : 'NULL'} ` } } query = `${(propertiesToUpdate.length > 1) ? query : query + ' '}WHERE ${idType}ID = '${userId}'`; return new Promise((resolve, reject) => { pool.query(query, function (error, results, fields) { if (error) { return reject(error); } resolve(true) }); }) } async function createUser(propertiesToCreate, valuesToCreate) { let query = `INSERT INTO gigaaa.users (${propertiesToCreate.toString()}) VALUES ('${valuesToCreate[0]}'`; if (valuesToCreate.length > 1) { for (let i = 1; i < valuesToCreate.length; i++) { query = query + `, '${valuesToCreate[i]}'` } } query = query + ')'; return new Promise((resolve, reject) => { pool.query(query, function (error, results, fields) { if (error) { return reject(error); } resolve(true) }); }) } async function deleteUser(userId, idType) { return new Promise((resolve, reject) => { pool.query(`DELETE FROM gigaaa.users WHERE ${idType}ID = '${userId}'`, function (error, results, fields) { if (error) { return reject(error); } resolve(true) }); }) }