dsql-admin/dsql-app/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts

53 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-01-13 08:00:21 +00:00
import serverError from "./serverError";
import parseDbResults from "./parseDbResults";
2025-01-28 18:43:16 +00:00
import connDbHandler from "../../utils/db/conn-db-handler";
2025-01-13 08:00:21 +00:00
type Param = {
queryString: string;
queryValuesArray?: string[];
tableSchema?: import("../../types").DSQL_TableSchemaType;
2025-02-12 16:56:44 +00:00
forceLocal?: boolean;
2025-01-13 08:00:21 +00:00
};
2024-11-05 11:12:42 +00:00
/**
2025-01-13 08:00:21 +00:00
* # Read Only Db Handler with Varaibles
2024-11-05 11:12:42 +00:00
* @returns
*/
2025-01-13 08:00:21 +00:00
export default async function varReadOnlyDatabaseDbHandler({
2024-11-05 11:12:42 +00:00
queryString,
queryValuesArray,
tableSchema,
2025-02-12 16:56:44 +00:00
forceLocal,
2025-01-13 08:00:21 +00:00
}: Param) {
2024-11-05 11:12:42 +00:00
let results;
2025-02-12 16:56:44 +00:00
const DB_CONN = forceLocal
? global.DSQL_DB_CONN
: global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN;
2025-01-28 18:43:16 +00:00
2024-11-05 11:12:42 +00:00
try {
2025-01-28 18:43:16 +00:00
results = await connDbHandler(DB_CONN, queryString, queryValuesArray);
} catch (error: any) {
2024-11-05 11:12:42 +00:00
serverError({
component: "varReadOnlyDatabaseDbHandler",
message: error.message,
noMail: true,
});
return error.message;
2025-01-28 18:43:16 +00:00
} finally {
DB_CONN?.end();
2024-11-05 11:12:42 +00:00
}
if (results) {
const unparsedResults = results;
const parsedResults = await parseDbResults({
unparsedResults: unparsedResults,
tableSchema: tableSchema,
});
return parsedResults;
} else {
return null;
}
2025-01-13 08:00:21 +00:00
}