dsql-admin/dsql-app/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts
Benjamin Toby 35fec57590 Updates
2025-01-28 19:43:16 +01:00

71 lines
1.7 KiB
TypeScript

import serverError from "./serverError";
import parseDbResults from "./parseDbResults";
import connDbHandler from "../../utils/db/conn-db-handler";
type Param = {
queryString: string;
queryValuesArray?: string[];
tableSchema?: import("../../types").DSQL_TableSchemaType;
};
/**
* # Read Only Db Handler with Varaibles
* @returns
*/
export default async function varReadOnlyDatabaseDbHandler({
queryString,
queryValuesArray,
tableSchema,
}: Param) {
/**
* Declare variables
*
* @description Declare "results" variable
*/
let results;
const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
/**
* Fetch from db
*
* @description Fetch data from db if no cache
*/
try {
results = await connDbHandler(DB_CONN, queryString, queryValuesArray);
////////////////////////////////////////
} catch (error: any) {
////////////////////////////////////////
serverError({
component: "varReadOnlyDatabaseDbHandler",
message: error.message,
noMail: true,
});
/**
* Return error
*/
return error.message;
} finally {
DB_CONN?.end();
}
/**
* 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;
}
}