// @ts-check const fs = require("fs"); const serverError = require("./serverError"); const parseDbResults = require("./parseDbResults"); const DSQL_USER_DB_HANDLER = require("../../utils/backend/global-db/DSQL_USER_DB_HANDLER"); const LOCAL_DB_HANDLER = require("../../utils/backend/global-db/LOCAL_DB_HANDLER"); /** * * @param {object} param0 * @param {string} param0.queryString * @param {string} param0.database * @param {string[]} [param0.queryValuesArray] * @param {import("../../types").DSQL_TableSchemaType} [param0.tableSchema] * @param {boolean} [param0.useLocal] * @returns */ module.exports = async function varReadOnlyDatabaseDbHandler({ queryString, database, queryValuesArray, tableSchema, useLocal, }) { /** * Declare variables * * @description Declare "results" variable */ let results; /** * Fetch from db * * @description Fetch data from db if no cache */ try { results = useLocal ? await LOCAL_DB_HANDLER(queryString, queryValuesArray) : await DSQL_USER_DB_HANDLER({ paradigm: "Read Only", database, queryString, queryValues: queryValuesArray, }); //////////////////////////////////////// } catch (/** @type {any} */ error) { //////////////////////////////////////// serverError({ component: "varReadOnlyDatabaseDbHandler", message: error.message, noMail: true, }); /** * Return error */ return error.message; } /** * Return results * * @description Return results add to cache if "req" param is passed */ if (results) { const unparsedResults = results; const parsedResults = await parseDbResults({ unparsedResults: unparsedResults, tableSchema: tableSchema, }); return parsedResults; } else { return null; } };