import connDbHandler from "../../db/conn-db-handler"; type Param = { paradigm: "Full Access" | "FA" | "Read Only"; queryString: string; queryValues?: string[]; }; /** * # DSQL user read-only DB handler */ export default async function DSQL_USER_DB_HANDLER({ paradigm, queryString, queryValues, }: Param) { try { switch (paradigm) { case "Read Only": return await connDbHandler( global.DSQL_READ_ONLY_DB_CONN, queryString, queryValues ); case "Full Access": return await connDbHandler( global.DSQL_FULL_ACCESS_DB_CONN, queryString, queryValues ); case "FA": return await connDbHandler( global.DSQL_FULL_ACCESS_DB_CONN, queryString, queryValues ); default: return null; } } catch (error: any) { console.log(`DSQL_USER_DB_HANDLER Error: ${error.message}`); return null; } // try { // return new Promise((resolve, reject) => { // const fullAccess = paradigm?.match(/full.access|^fa$/i) // ? true // : false; // try { // if (fullAccess) { // DSQL_USER = mysql({ // config: { // host: process.env.DSQL_DB_HOST, // user: process.env.DSQL_DB_FULL_ACCESS_USERNAME, // password: process.env.DSQL_DB_FULL_ACCESS_PASSWORD, // database: database, // ssl: grabDbSSL(), // }, // }); // } else { // DSQL_USER = mysql({ // config: { // host: process.env.DSQL_DB_HOST, // user: process.env.DSQL_DB_READ_ONLY_USERNAME, // password: process.env.DSQL_DB_READ_ONLY_PASSWORD, // database: database, // ssl: grabDbSSL(), // }, // }); // } // /** // * ### Run query Function // * @param {any} results // */ // function runQuery(results: any) { // DSQL_USER.end(); // resolve(JSON.parse(JSON.stringify(results))); // } // /** // * ### Query Error // * @param {any} err // */ // function queryError(err: any) { // DSQL_USER.end(); // resolve({ // error: err.message, // queryStringGenerated: queryString, // queryValuesGenerated: queryValues, // sql: err.sql, // }); // } // if ( // queryValues && // Array.isArray(queryValues) && // queryValues[0] // ) { // DSQL_USER.query(queryString, queryValues) // .then(runQuery) // .catch(queryError); // } else { // DSQL_USER.query(queryString) // .then(runQuery) // .catch(queryError); // } // //////////////////////////////////////// // } catch (/** @type {any} */ error: any) { // //////////////////////////////////////// // fs.appendFileSync( // "./.tmp/dbErrorLogs.txt", // error.message + "\n" + Date() + "\n\n\n", // "utf8" // ); // resolve({ // error: error.message, // }); // } // }); // } catch (/** @type {any} */ error: any) { // return { // success: false, // error: error.message, // }; // } }