47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import grabDBConnection from "./grab-db-connection";
|
|
/**
|
|
* # Main DB Handler Function
|
|
* @requires DSQL_DB_CONN - Gobal Variable for Datasquirel Database
|
|
*/
|
|
export default async function dbHandler({ query, values, noErrorLogs, database, config, }) {
|
|
let CONNECTION;
|
|
let results = null;
|
|
try {
|
|
CONNECTION = await grabDBConnection({ database, config });
|
|
if (query && values) {
|
|
const queryResults = await CONNECTION.query(query, values);
|
|
results = queryResults[0];
|
|
}
|
|
else {
|
|
const queryResults = await CONNECTION.query(query);
|
|
results = queryResults[0];
|
|
}
|
|
}
|
|
catch (error) {
|
|
if (error.message &&
|
|
typeof error.message == "string" &&
|
|
error.message.match(/Access denied for user.*password/i)) {
|
|
throw new Error("Authentication Failed!");
|
|
}
|
|
if (!noErrorLogs) {
|
|
console.log(error);
|
|
}
|
|
results = null;
|
|
}
|
|
finally {
|
|
await CONNECTION?.end();
|
|
}
|
|
if (results) {
|
|
return {
|
|
success: true,
|
|
payload: Array.isArray(results) ? results : undefined,
|
|
single_res: Array.isArray(results) ? undefined : results,
|
|
};
|
|
}
|
|
else {
|
|
return {
|
|
success: false,
|
|
};
|
|
}
|
|
}
|