gigaaa-chatbot-auth-extended
Version:
Gigaaa chatbots auth
82 lines (73 loc) • 2.51 kB
JavaScript
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)
});
})
}