From 1db9c3a2e7ac3ba4be2409d24fc9de799ecfcbce Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Tue, 21 Jan 2025 18:43:03 +0100 Subject: [PATCH] Updates --- dist/index.d.ts | 2 +- dist/index.js | 4 +- .../functions/api/query/get.d.ts | 4 +- .../package-shared/functions/api/query/get.js | 6 +- .../functions/api/query/post.d.ts | 4 +- .../functions/api/query/post.js | 3 +- .../functions/backend/db/addDbEntry.d.ts | 3 +- .../functions/backend/db/addDbEntry.js | 53 +++++--------- .../functions/backend/db/deleteDbEntry.d.ts | 6 +- .../functions/backend/db/deleteDbEntry.js | 38 ++++------ .../functions/backend/db/runQuery.d.ts | 4 +- .../functions/backend/db/runQuery.js | 19 ++--- .../functions/backend/db/updateDbEntry.d.ts | 6 +- .../functions/backend/db/updateDbEntry.js | 37 ++++------ .../functions/backend/fullAccessDbHandler.js | 19 ++--- .../backend/varReadOnlyDatabaseDbHandler.js | 18 ++--- dist/package-shared/types/index.d.ts | 9 +++ .../utils/check-if-is-master.d.ts | 6 ++ .../utils/check-if-is-master.js | 12 ++++ .../utils}/grab-query-and-values.d.ts | 2 +- .../utils}/grab-query-and-values.js | 2 +- dist/utils/{get/index.d.ts => get.d.ts} | 11 +-- dist/utils/{get/index.js => get.js} | 8 +-- index.ts | 2 +- package-shared/functions/api/query/get.ts | 8 ++- package-shared/functions/api/query/post.ts | 5 +- .../functions/backend/db/addDbEntry.ts | 72 +++++++------------ .../functions/backend/db/deleteDbEntry.ts | 43 +++++------ .../functions/backend/db/runQuery.ts | 19 ++--- .../functions/backend/db/updateDbEntry.ts | 42 ++++------- .../functions/backend/fullAccessDbHandler.ts | 21 ++---- .../backend/varReadOnlyDatabaseDbHandler.ts | 20 ++---- package-shared/types/index.ts | 8 +++ package-shared/utils/check-if-is-master.ts | 14 ++++ .../utils}/grab-query-and-values.ts | 4 +- package.json | 2 +- utils/{get/index.ts => get.ts} | 19 ++--- 37 files changed, 244 insertions(+), 311 deletions(-) create mode 100644 dist/package-shared/utils/check-if-is-master.d.ts create mode 100644 dist/package-shared/utils/check-if-is-master.js rename dist/{utils/get/(utils) => package-shared/utils}/grab-query-and-values.d.ts (86%) rename dist/{utils/get/(utils) => package-shared/utils}/grab-query-and-values.js (91%) rename dist/utils/{get/index.d.ts => get.d.ts} (68%) rename dist/utils/{get/index.js => get.js} (93%) create mode 100644 package-shared/utils/check-if-is-master.ts rename {utils/get/(utils) => package-shared/utils}/grab-query-and-values.ts (89%) rename utils/{get/index.ts => get.ts} (86%) diff --git a/dist/index.d.ts b/dist/index.d.ts index 64a1803..b2cacc2 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -8,7 +8,7 @@ declare global { /** * Imports */ -import get from "./utils/get/index"; +import get from "./utils/get"; import post from "./utils/post"; import getSchema from "./utils/get-schema"; import uploadImage from "./utils/upload-image"; diff --git a/dist/index.js b/dist/index.js index c54e7f0..fdeace7 100644 --- a/dist/index.js +++ b/dist/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); /** * Imports */ -const index_1 = __importDefault(require("./utils/get/index")); +const get_1 = __importDefault(require("./utils/get")); const post_1 = __importDefault(require("./utils/post")); const get_schema_1 = __importDefault(require("./utils/get-schema")); const upload_image_1 = __importDefault(require("./utils/upload-image")); @@ -82,7 +82,7 @@ const sql = { * Main Export */ const datasquirel = { - get: index_1.default, + get: get_1.default, post: post_1.default, media, user, diff --git a/dist/package-shared/functions/api/query/get.d.ts b/dist/package-shared/functions/api/query/get.d.ts index 9dd3f40..dd1168e 100644 --- a/dist/package-shared/functions/api/query/get.d.ts +++ b/dist/package-shared/functions/api/query/get.d.ts @@ -1,3 +1,4 @@ +import { DbContextsArray } from "../../backend/db/runQuery"; import { ServerQueryParam } from "../../../types"; type Param = { query: string | { @@ -9,9 +10,10 @@ type Param = { tableName?: string; dbSchema?: import("../../../types").DSQL_DatabaseSchemaType; debug?: boolean; + dbContext?: (typeof DbContextsArray)[number]; }; /** * # Get Function FOr API */ -export default function apiGet({ query, dbFullName, queryValues, tableName, dbSchema, debug, }: Param): Promise; +export default function apiGet({ query, dbFullName, queryValues, tableName, dbSchema, debug, dbContext, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/api/query/get.js b/dist/package-shared/functions/api/query/get.js index 83fc36d..048e390 100644 --- a/dist/package-shared/functions/api/query/get.js +++ b/dist/package-shared/functions/api/query/get.js @@ -17,12 +17,12 @@ exports.default = apiGet; const lodash_1 = __importDefault(require("lodash")); const serverError_1 = __importDefault(require("../../backend/serverError")); const runQuery_1 = __importDefault(require("../../backend/db/runQuery")); -const grab_query_and_values_1 = __importDefault(require("../../../../utils/get/(utils)/grab-query-and-values")); +const grab_query_and_values_1 = __importDefault(require("../../../utils/grab-query-and-values")); /** * # Get Function FOr API */ function apiGet(_a) { - return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, debug, }) { + return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, debug, dbContext, }) { const queryAndValues = (0, grab_query_and_values_1.default)({ query, values: queryValues, @@ -40,6 +40,8 @@ function apiGet(_a) { readOnly: true, dbSchema, tableName, + dbContext, + debug, }); if (debug && global.DSQL_USE_LOCAL) { console.log("apiGet:result", result); diff --git a/dist/package-shared/functions/api/query/post.d.ts b/dist/package-shared/functions/api/query/post.d.ts index 1696940..0cef8df 100644 --- a/dist/package-shared/functions/api/query/post.d.ts +++ b/dist/package-shared/functions/api/query/post.d.ts @@ -1,3 +1,4 @@ +import { DbContextsArray } from "../../backend/db/runQuery"; import { DSQL_DatabaseSchemaType, PostReturn } from "../../../types"; type Param = { query: any; @@ -5,9 +6,10 @@ type Param = { dbFullName: string; tableName?: string; dbSchema?: DSQL_DatabaseSchemaType; + dbContext?: (typeof DbContextsArray)[number]; }; /** * # Post Function For API */ -export default function apiPost({ query, dbFullName, queryValues, tableName, dbSchema, }: Param): Promise; +export default function apiPost({ query, dbFullName, queryValues, tableName, dbSchema, dbContext, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/api/query/post.js b/dist/package-shared/functions/api/query/post.js index f6026c3..466ff0c 100644 --- a/dist/package-shared/functions/api/query/post.js +++ b/dist/package-shared/functions/api/query/post.js @@ -20,7 +20,7 @@ const runQuery_1 = __importDefault(require("../../backend/db/runQuery")); * # Post Function For API */ function apiPost(_a) { - return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, }) { + return __awaiter(this, arguments, void 0, function* ({ query, dbFullName, queryValues, tableName, dbSchema, dbContext, }) { var _b; if (typeof query === "string" && (query === null || query === void 0 ? void 0 : query.match(/^create |^alter |^drop /i))) { return { success: false, msg: "Wrong Input" }; @@ -43,6 +43,7 @@ function apiPost(_a) { dbSchema: dbSchema, queryValuesArray: queryValues, tableName, + dbContext, }); results = result; if (error) diff --git a/dist/package-shared/functions/backend/db/addDbEntry.d.ts b/dist/package-shared/functions/backend/db/addDbEntry.d.ts index ab6e4bb..800542c 100644 --- a/dist/package-shared/functions/backend/db/addDbEntry.d.ts +++ b/dist/package-shared/functions/backend/db/addDbEntry.d.ts @@ -1,5 +1,6 @@ +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: "Master" | "Dsql User"; + dbContext?: (typeof DbContextsArray)[number]; paradigm?: "Read Only" | "Full Access"; dbFullName?: string; tableName: string; diff --git a/dist/package-shared/functions/backend/db/addDbEntry.js b/dist/package-shared/functions/backend/db/addDbEntry.js index 37639ca..9e3be17 100644 --- a/dist/package-shared/functions/backend/db/addDbEntry.js +++ b/dist/package-shared/functions/backend/db/addDbEntry.js @@ -1,5 +1,4 @@ "use strict"; -// @ts-check var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -17,10 +16,9 @@ exports.default = addDbEntry; const sanitize_html_1 = __importDefault(require("sanitize-html")); const sanitizeHtmlOptions_1 = __importDefault(require("../html/sanitizeHtmlOptions")); const updateDbEntry_1 = __importDefault(require("./updateDbEntry")); -const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); -const DSQL_USER_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DSQL_USER_DB_HANDLER")); const encrypt_1 = __importDefault(require("../../dsql/encrypt")); -const LOCAL_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); /** * Add a db Entry Function */ @@ -30,19 +28,13 @@ function addDbEntry(_a) { /** * Initialize variables */ - const isMaster = global.DSQL_USE_LOCAL - ? true - : (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i)) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; - /** @type { any } */ - const dbHandler = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER_1.default - : isMaster - ? DB_HANDLER_1.default - : DSQL_USER_DB_HANDLER_1.default; + const isMaster = (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// @@ -61,24 +53,15 @@ function addDbEntry(_a) { //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// - /** - * Handle function logic - */ if (duplicateColumnName && typeof duplicateColumnName === "string") { - const duplicateValue = isMaster - ? yield dbHandler(`SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, [duplicateColumnValue]) - : yield dbHandler({ - paradigm: "Read Only", - queryString: `SELECT * FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, - queryValues: [duplicateColumnValue], - }); + const checkDuplicateQuery = `SELECT * FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; + const duplicateValue = yield (0, conn_db_handler_1.default)(DB_RO_CONN, checkDuplicateQuery, [duplicateColumnValue]); if ((duplicateValue === null || duplicateValue === void 0 ? void 0 : duplicateValue[0]) && !update) { return null; } else if (duplicateValue && duplicateValue[0] && update) { return yield (0, updateDbEntry_1.default)({ dbContext, - paradigm, dbFullName, tableName, data, @@ -145,7 +128,7 @@ function addDbEntry(_a) { insertValuesArray.push(value); } } - catch ( /** @type {any} */error) { + catch (error) { console.log("DSQL: Error in parsing data keys =>", error.message); continue; } @@ -169,15 +152,11 @@ function addDbEntry(_a) { insertValuesArray.push(Date.now()); } //////////////////////////////////////// - const query = `INSERT INTO \`${dbFullName}\`.\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`; + const query = `INSERT INTO ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray + .map(() => "?") + .join(",")})`; const queryValuesArray = insertValuesArray; - const newInsert = isMaster - ? yield dbHandler(query, queryValuesArray) - : yield dbHandler({ - paradigm, - queryString: query, - queryValues: queryValuesArray, - }); + const newInsert = yield (0, conn_db_handler_1.default)(DB_CONN, query, queryValuesArray); /** * Return statement */ diff --git a/dist/package-shared/functions/backend/db/deleteDbEntry.d.ts b/dist/package-shared/functions/backend/db/deleteDbEntry.d.ts index 10f9234..f340de9 100644 --- a/dist/package-shared/functions/backend/db/deleteDbEntry.d.ts +++ b/dist/package-shared/functions/backend/db/deleteDbEntry.d.ts @@ -1,6 +1,6 @@ +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: string; - paradigm?: "Read Only" | "Full Access"; + dbContext?: (typeof DbContextsArray)[number]; dbFullName: string; tableName: string; tableSchema?: import("../../../types").DSQL_TableSchemaType; @@ -11,5 +11,5 @@ type Param = { * # Delete DB Entry Function * @description */ -export default function deleteDbEntry({ dbContext, paradigm, dbFullName, tableName, identifierColumnName, identifierValue, }: Param): Promise; +export default function deleteDbEntry({ dbContext, dbFullName, tableName, identifierColumnName, identifierValue, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/backend/db/deleteDbEntry.js b/dist/package-shared/functions/backend/db/deleteDbEntry.js index b3bdfa5..a1ad530 100644 --- a/dist/package-shared/functions/backend/db/deleteDbEntry.js +++ b/dist/package-shared/functions/backend/db/deleteDbEntry.js @@ -13,41 +13,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = deleteDbEntry; -const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); -const DSQL_USER_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DSQL_USER_DB_HANDLER")); -const LOCAL_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); /** * # Delete DB Entry Function * @description */ function deleteDbEntry(_a) { - return __awaiter(this, arguments, void 0, function* ({ dbContext, paradigm, dbFullName, tableName, identifierColumnName, identifierValue, }) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, identifierColumnName, identifierValue, }) { try { - const isMaster = global.DSQL_USE_LOCAL - ? true - : (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i)) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; - const dbHandler = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER_1.default - : isMaster - ? DB_HANDLER_1.default - : DSQL_USER_DB_HANDLER_1.default; + const isMaster = (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; /** * Execution * * @description */ - const query = `DELETE FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${identifierColumnName}\`=?`; - const deletedEntry = isMaster - ? yield dbHandler(query, [identifierValue]) - : yield dbHandler({ - paradigm, - queryString: query, - queryValues: [identifierValue], - }); + const query = `DELETE FROM ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` WHERE \`${identifierColumnName}\`=?`; + const deletedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, [ + identifierValue, + ]); /** * Return statement */ diff --git a/dist/package-shared/functions/backend/db/runQuery.d.ts b/dist/package-shared/functions/backend/db/runQuery.d.ts index fc5cf70..05ba4fd 100644 --- a/dist/package-shared/functions/backend/db/runQuery.d.ts +++ b/dist/package-shared/functions/backend/db/runQuery.d.ts @@ -1,4 +1,6 @@ +export declare const DbContextsArray: readonly ["Master", "Dsql User"]; type Param = { + dbContext?: (typeof DbContextsArray)[number]; dbFullName: string; query: string | any; readOnly?: boolean; @@ -10,5 +12,5 @@ type Param = { /** * # Run DSQL users queries */ -export default function runQuery({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, }: Param): Promise; +export default function runQuery({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/backend/db/runQuery.js b/dist/package-shared/functions/backend/db/runQuery.js index 6aff51d..5acb7df 100644 --- a/dist/package-shared/functions/backend/db/runQuery.js +++ b/dist/package-shared/functions/backend/db/runQuery.js @@ -12,6 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.DbContextsArray = void 0; exports.default = runQuery; const fullAccessDbHandler_1 = __importDefault(require("../fullAccessDbHandler")); const varReadOnlyDatabaseDbHandler_1 = __importDefault(require("../varReadOnlyDatabaseDbHandler")); @@ -20,11 +21,12 @@ const addDbEntry_1 = __importDefault(require("./addDbEntry")); const updateDbEntry_1 = __importDefault(require("./updateDbEntry")); const deleteDbEntry_1 = __importDefault(require("./deleteDbEntry")); const trim_sql_1 = __importDefault(require("../../../utils/trim-sql")); +exports.DbContextsArray = ["Master", "Dsql User"]; /** * # Run DSQL users queries */ function runQuery(_a) { - return __awaiter(this, arguments, void 0, function* ({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, }) { + return __awaiter(this, arguments, void 0, function* ({ dbFullName, query, readOnly, dbSchema, queryValuesArray, tableName, debug, dbContext, }) { /** * Declare variables * @@ -95,10 +97,7 @@ function runQuery(_a) { switch (action.toLowerCase()) { case "insert": result = yield (0, addDbEntry_1.default)({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, data: data, @@ -113,10 +112,7 @@ function runQuery(_a) { break; case "update": result = yield (0, updateDbEntry_1.default)({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, data: data, @@ -127,10 +123,7 @@ function runQuery(_a) { break; case "delete": result = yield (0, deleteDbEntry_1.default)({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, identifierColumnName, diff --git a/dist/package-shared/functions/backend/db/updateDbEntry.d.ts b/dist/package-shared/functions/backend/db/updateDbEntry.d.ts index a330fd2..161bb9d 100644 --- a/dist/package-shared/functions/backend/db/updateDbEntry.d.ts +++ b/dist/package-shared/functions/backend/db/updateDbEntry.d.ts @@ -1,6 +1,6 @@ +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: "Master" | "Dsql User"; - paradigm?: "Read Only" | "Full Access"; + dbContext?: (typeof DbContextsArray)[number]; dbFullName?: string; tableName: string; encryptionKey?: string; @@ -14,5 +14,5 @@ type Param = { * # Update DB Function * @description */ -export default function updateDbEntry({ dbContext, paradigm, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, }: Param): Promise; +export default function updateDbEntry({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, }: Param): Promise; export {}; diff --git a/dist/package-shared/functions/backend/db/updateDbEntry.js b/dist/package-shared/functions/backend/db/updateDbEntry.js index 5bcc4e0..53a0195 100644 --- a/dist/package-shared/functions/backend/db/updateDbEntry.js +++ b/dist/package-shared/functions/backend/db/updateDbEntry.js @@ -15,35 +15,28 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = updateDbEntry; const sanitize_html_1 = __importDefault(require("sanitize-html")); const sanitizeHtmlOptions_1 = __importDefault(require("../html/sanitizeHtmlOptions")); -const DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DB_HANDLER")); -const DSQL_USER_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/DSQL_USER_DB_HANDLER")); const encrypt_1 = __importDefault(require("../../dsql/encrypt")); -const LOCAL_DB_HANDLER_1 = __importDefault(require("../../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const check_if_is_master_1 = __importDefault(require("../../../utils/check-if-is-master")); +const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler")); /** * # Update DB Function * @description */ function updateDbEntry(_a) { - return __awaiter(this, arguments, void 0, function* ({ dbContext, paradigm, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, }) { + return __awaiter(this, arguments, void 0, function* ({ dbContext, dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, encryptionKey, encryptionSalt, }) { var _b; /** * Check if data is valid */ if (!data || !Object.keys(data).length) return null; - const isMaster = global.DSQL_USE_LOCAL - ? true - : (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i)) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; - /** @type {(a1:any, a2?:any)=> any } */ - const dbHandler = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER_1.default - : isMaster - ? DB_HANDLER_1.default - : DSQL_USER_DB_HANDLER_1.default; + const isMaster = (0, check_if_is_master_1.default)({ dbContext, dbFullName }); + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// @@ -126,15 +119,9 @@ function updateDbEntry(_a) { updateKeyValueArray.push(`date_updated_code='${Date.now()}'`); //////////////////////////////////////// //////////////////////////////////////// - const query = `UPDATE \`${dbFullName}\`.\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; + const query = `UPDATE ${isMaster ? "" : `\`${dbFullName}\`.`}\`${tableName}\` SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`; updateValues.push(identifierValue); - const updatedEntry = isMaster - ? yield dbHandler(query, updateValues) - : yield dbHandler({ - paradigm, - queryString: query, - queryValues: updateValues, - }); + const updatedEntry = yield (0, conn_db_handler_1.default)(DB_CONN, query, updateValues); /** * Return statement */ diff --git a/dist/package-shared/functions/backend/fullAccessDbHandler.js b/dist/package-shared/functions/backend/fullAccessDbHandler.js index ad617fd..5a85e34 100644 --- a/dist/package-shared/functions/backend/fullAccessDbHandler.js +++ b/dist/package-shared/functions/backend/fullAccessDbHandler.js @@ -1,5 +1,4 @@ "use strict"; -// @ts-check var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -14,8 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = fullAccessDbHandler; -const DSQL_USER_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DSQL_USER_DB_HANDLER")); -const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); const parseDbResults_1 = __importDefault(require("./parseDbResults")); const serverError_1 = __importDefault(require("./serverError")); /** @@ -29,23 +27,17 @@ function fullAccessDbHandler(_a) { * @description Declare "results" variable */ let results; + const DB_CONN = global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; /** * Fetch from db * * @description Fetch data from db if no cache */ try { - /** ********************* Run Query */ - results = global.DSQL_USE_LOCAL - ? yield (0, LOCAL_DB_HANDLER_1.default)(queryString, queryValuesArray) - : yield (0, DSQL_USER_DB_HANDLER_1.default)({ - paradigm: "Full Access", - queryString, - queryValues: queryValuesArray, - }); + results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray); //////////////////////////////////////// } - catch ( /** @type {any} */error) { + catch (error) { //////////////////////////////////////// (0, serverError_1.default)({ component: "fullAccessDbHandler", @@ -56,6 +48,9 @@ function fullAccessDbHandler(_a) { */ return error.message; } + finally { + DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); + } /** * Return results * diff --git a/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js b/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js index ee26bbe..02821e9 100644 --- a/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js +++ b/dist/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.js @@ -1,5 +1,4 @@ "use strict"; -// @ts-check var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { @@ -16,8 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = varReadOnlyDatabaseDbHandler; const serverError_1 = __importDefault(require("./serverError")); const parseDbResults_1 = __importDefault(require("./parseDbResults")); -const DSQL_USER_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/DSQL_USER_DB_HANDLER")); -const LOCAL_DB_HANDLER_1 = __importDefault(require("../../utils/backend/global-db/LOCAL_DB_HANDLER")); +const conn_db_handler_1 = __importDefault(require("../../utils/db/conn-db-handler")); /** * # Read Only Db Handler with Varaibles * @returns @@ -30,22 +28,17 @@ function varReadOnlyDatabaseDbHandler(_a) { * @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 = global.DSQL_USE_LOCAL - ? yield (0, LOCAL_DB_HANDLER_1.default)(queryString, queryValuesArray) - : yield (0, DSQL_USER_DB_HANDLER_1.default)({ - paradigm: "Read Only", - queryString, - queryValues: queryValuesArray, - }); + results = yield (0, conn_db_handler_1.default)(DB_CONN, queryString, queryValuesArray); //////////////////////////////////////// } - catch ( /** @type {any} */error) { + catch (error) { //////////////////////////////////////// (0, serverError_1.default)({ component: "varReadOnlyDatabaseDbHandler", @@ -57,6 +50,9 @@ function varReadOnlyDatabaseDbHandler(_a) { */ return error.message; } + finally { + DB_CONN === null || DB_CONN === void 0 ? void 0 : DB_CONN.end(); + } /** * Return results * diff --git a/dist/package-shared/types/index.d.ts b/dist/package-shared/types/index.d.ts index cfccfb0..32e589c 100644 --- a/dist/package-shared/types/index.d.ts +++ b/dist/package-shared/types/index.d.ts @@ -1256,4 +1256,13 @@ export type HttpFunctionResponse = { + query: ServerQueryParam; + table: string; + dbFullName?: string; +}; export {}; diff --git a/dist/package-shared/utils/check-if-is-master.d.ts b/dist/package-shared/utils/check-if-is-master.d.ts new file mode 100644 index 0000000..12846f6 --- /dev/null +++ b/dist/package-shared/utils/check-if-is-master.d.ts @@ -0,0 +1,6 @@ +type Param = { + dbContext?: "Master" | "Dsql User"; + dbFullName?: string; +}; +export default function checkIfIsMaster({ dbContext, dbFullName }: Param): boolean; +export {}; diff --git a/dist/package-shared/utils/check-if-is-master.js b/dist/package-shared/utils/check-if-is-master.js new file mode 100644 index 0000000..21e9e20 --- /dev/null +++ b/dist/package-shared/utils/check-if-is-master.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = checkIfIsMaster; +function checkIfIsMaster({ dbContext, dbFullName }) { + return (dbContext === null || dbContext === void 0 ? void 0 : dbContext.match(/dsql.user/i)) + ? false + : global.DSQL_USE_LOCAL + ? true + : dbFullName && !dbFullName.match(/^datasquirel$/) + ? false + : true; +} diff --git a/dist/utils/get/(utils)/grab-query-and-values.d.ts b/dist/package-shared/utils/grab-query-and-values.d.ts similarity index 86% rename from dist/utils/get/(utils)/grab-query-and-values.d.ts rename to dist/package-shared/utils/grab-query-and-values.d.ts index 1456fed..d334ad1 100644 --- a/dist/utils/get/(utils)/grab-query-and-values.d.ts +++ b/dist/package-shared/utils/grab-query-and-values.d.ts @@ -1,4 +1,4 @@ -import { ApiGetQueryObject } from ".."; +import { ApiGetQueryObject } from "../types"; type Param = { query: string | ApiGetQueryObject; values?: (string | number)[]; diff --git a/dist/utils/get/(utils)/grab-query-and-values.js b/dist/package-shared/utils/grab-query-and-values.js similarity index 91% rename from dist/utils/get/(utils)/grab-query-and-values.js rename to dist/package-shared/utils/grab-query-and-values.js index 49b8c4f..bd8cc5c 100644 --- a/dist/utils/get/(utils)/grab-query-and-values.js +++ b/dist/package-shared/utils/grab-query-and-values.js @@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = apiGetGrabQueryAndValues; -const sql_generator_1 = __importDefault(require("../../../package-shared/functions/dsql/sql/sql-generator")); +const sql_generator_1 = __importDefault(require("../functions/dsql/sql/sql-generator")); function apiGetGrabQueryAndValues({ query, values }) { const queryGenObject = typeof query == "string" ? undefined diff --git a/dist/utils/get/index.d.ts b/dist/utils/get.d.ts similarity index 68% rename from dist/utils/get/index.d.ts rename to dist/utils/get.d.ts index e607348..148336e 100644 --- a/dist/utils/get/index.d.ts +++ b/dist/utils/get.d.ts @@ -1,13 +1,4 @@ -import { GetReturn, ServerQueryParam } from "../../package-shared/types"; -export type ApiGetQueryObject = { - query: ServerQueryParam; - table: string; - dbFullName?: string; -}; +import { ApiGetQueryObject, GetReturn } from "../package-shared/types"; type Param { const queryAndValues = apiGetGrabQueryAndValues({ query, @@ -57,6 +59,8 @@ export default async function apiGet({ readOnly: true, dbSchema, tableName, + dbContext, + debug, }); if (debug && global.DSQL_USE_LOCAL) { diff --git a/package-shared/functions/api/query/post.ts b/package-shared/functions/api/query/post.ts index dfc055f..82f55b5 100644 --- a/package-shared/functions/api/query/post.ts +++ b/package-shared/functions/api/query/post.ts @@ -1,6 +1,6 @@ import _ from "lodash"; import serverError from "../../backend/serverError"; -import runQuery from "../../backend/db/runQuery"; +import runQuery, { DbContextsArray } from "../../backend/db/runQuery"; import { DSQL_DatabaseSchemaType, PostReturn } from "../../../types"; type Param = { @@ -9,6 +9,7 @@ type Param = { dbFullName: string; tableName?: string; dbSchema?: DSQL_DatabaseSchemaType; + dbContext?: (typeof DbContextsArray)[number]; }; /** @@ -20,6 +21,7 @@ export default async function apiPost({ queryValues, tableName, dbSchema, + dbContext, }: Param): Promise { if (typeof query === "string" && query?.match(/^create |^alter |^drop /i)) { return { success: false, msg: "Wrong Input" }; @@ -47,6 +49,7 @@ export default async function apiPost({ dbSchema: dbSchema, queryValuesArray: queryValues, tableName, + dbContext, }); results = result; diff --git a/package-shared/functions/backend/db/addDbEntry.ts b/package-shared/functions/backend/db/addDbEntry.ts index 0ea4d86..8d6c7c0 100644 --- a/package-shared/functions/backend/db/addDbEntry.ts +++ b/package-shared/functions/backend/db/addDbEntry.ts @@ -1,16 +1,14 @@ -// @ts-check - import sanitizeHtml from "sanitize-html"; import sanitizeHtmlOptions from "../html/sanitizeHtmlOptions"; import updateDbEntry from "./updateDbEntry"; import _ from "lodash"; -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import DSQL_USER_DB_HANDLER from "../../../utils/backend/global-db/DSQL_USER_DB_HANDLER"; import encrypt from "../../dsql/encrypt"; -import LOCAL_DB_HANDLER from "../../../utils/backend/global-db/LOCAL_DB_HANDLER"; +import connDbHandler from "../../../utils/db/conn-db-handler"; +import checkIfIsMaster from "../../../utils/check-if-is-master"; +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: "Master" | "Dsql User"; + dbContext?: (typeof DbContextsArray)[number]; paradigm?: "Read Only" | "Full Access"; dbFullName?: string; tableName: string; @@ -42,20 +40,14 @@ export default async function addDbEntry({ /** * Initialize variables */ - const isMaster = global.DSQL_USE_LOCAL - ? true - : dbContext?.match(/dsql.user/i) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; + const isMaster = checkIfIsMaster({ dbContext, dbFullName }); - /** @type { any } */ - const dbHandler: any = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER - : isMaster - ? DB_HANDLER - : DSQL_USER_DB_HANDLER; + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; //////////////////////////////////////// //////////////////////////////////////// @@ -72,28 +64,22 @@ export default async function addDbEntry({ //////////////////////////////////////// //////////////////////////////////////// - /** - * Handle function logic - */ - if (duplicateColumnName && typeof duplicateColumnName === "string") { - const duplicateValue = isMaster - ? await dbHandler( - `SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, - [duplicateColumnValue] - ) - : await dbHandler({ - paradigm: "Read Only", - queryString: `SELECT * FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`, - queryValues: [duplicateColumnValue], - }); + const checkDuplicateQuery = `SELECT * FROM ${ + isMaster ? "" : `\`${dbFullName}\`.` + }\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`; + + const duplicateValue = await connDbHandler( + DB_RO_CONN, + checkDuplicateQuery, + [duplicateColumnValue] + ); if (duplicateValue?.[0] && !update) { return null; } else if (duplicateValue && duplicateValue[0] && update) { return await updateDbEntry({ dbContext, - paradigm, dbFullName, tableName, data, @@ -178,7 +164,7 @@ export default async function addDbEntry({ } else { insertValuesArray.push(value); } - } catch (/** @type {any} */ error: any) { + } catch (error: any) { console.log("DSQL: Error in parsing data keys =>", error.message); continue; } @@ -210,18 +196,14 @@ export default async function addDbEntry({ //////////////////////////////////////// - const query = `INSERT INTO \`${dbFullName}\`.\`${tableName}\` (${insertKeysArray.join( - "," - )}) VALUES (${insertValuesArray.map(() => "?").join(",")})`; + const query = `INSERT INTO ${ + isMaster ? "" : `\`${dbFullName}\`.` + }\`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray + .map(() => "?") + .join(",")})`; const queryValuesArray = insertValuesArray; - const newInsert = isMaster - ? await dbHandler(query, queryValuesArray) - : await dbHandler({ - paradigm, - queryString: query, - queryValues: queryValuesArray, - }); + const newInsert = await connDbHandler(DB_CONN, query, queryValuesArray); /** * Return statement diff --git a/package-shared/functions/backend/db/deleteDbEntry.ts b/package-shared/functions/backend/db/deleteDbEntry.ts index 7f75881..18d7981 100644 --- a/package-shared/functions/backend/db/deleteDbEntry.ts +++ b/package-shared/functions/backend/db/deleteDbEntry.ts @@ -1,10 +1,9 @@ -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import DSQL_USER_DB_HANDLER from "../../../utils/backend/global-db/DSQL_USER_DB_HANDLER"; -import LOCAL_DB_HANDLER from "../../../utils/backend/global-db/LOCAL_DB_HANDLER"; +import checkIfIsMaster from "../../../utils/check-if-is-master"; +import connDbHandler from "../../../utils/db/conn-db-handler"; +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: string; - paradigm?: "Read Only" | "Full Access"; + dbContext?: (typeof DbContextsArray)[number]; dbFullName: string; tableName: string; tableSchema?: import("../../../types").DSQL_TableSchemaType; @@ -18,41 +17,33 @@ type Param = { */ export default async function deleteDbEntry({ dbContext, - paradigm, dbFullName, tableName, identifierColumnName, identifierValue, }: Param): Promise { try { - const isMaster = global.DSQL_USE_LOCAL - ? true - : dbContext?.match(/dsql.user/i) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; + const isMaster = checkIfIsMaster({ dbContext, dbFullName }); - const dbHandler: (a1: any, a2?: any) => any = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER - : isMaster - ? DB_HANDLER - : DSQL_USER_DB_HANDLER; + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; /** * Execution * * @description */ - const query = `DELETE FROM \`${dbFullName}\`.\`${tableName}\` WHERE \`${identifierColumnName}\`=?`; + const query = `DELETE FROM ${ + isMaster ? "" : `\`${dbFullName}\`.` + }\`${tableName}\` WHERE \`${identifierColumnName}\`=?`; - const deletedEntry = isMaster - ? await dbHandler(query, [identifierValue]) - : await dbHandler({ - paradigm, - queryString: query, - queryValues: [identifierValue], - }); + const deletedEntry = await connDbHandler(DB_CONN, query, [ + identifierValue, + ]); /** * Return statement diff --git a/package-shared/functions/backend/db/runQuery.ts b/package-shared/functions/backend/db/runQuery.ts index 16a6d55..0bb0b43 100644 --- a/package-shared/functions/backend/db/runQuery.ts +++ b/package-shared/functions/backend/db/runQuery.ts @@ -7,7 +7,10 @@ import deleteDbEntry from "./deleteDbEntry"; import trimSql from "../../../utils/trim-sql"; import { DSQL_TableSchemaType } from "../../../types"; +export const DbContextsArray = ["Master", "Dsql User"] as const; + type Param = { + dbContext?: (typeof DbContextsArray)[number]; dbFullName: string; query: string | any; readOnly?: boolean; @@ -28,6 +31,7 @@ export default async function runQuery({ queryValuesArray, tableName, debug, + dbContext, }: Param): Promise { /** * Declare variables @@ -117,10 +121,7 @@ export default async function runQuery({ switch (action.toLowerCase()) { case "insert": result = await addDbEntry({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, data: data, @@ -138,10 +139,7 @@ export default async function runQuery({ case "update": result = await updateDbEntry({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, data: data, @@ -154,10 +152,7 @@ export default async function runQuery({ case "delete": result = await deleteDbEntry({ - dbContext: global.DSQL_USE_LOCAL - ? "Master" - : "Dsql User", - paradigm: "Full Access", + dbContext, dbFullName: dbFullName, tableName: table, identifierColumnName, diff --git a/package-shared/functions/backend/db/updateDbEntry.ts b/package-shared/functions/backend/db/updateDbEntry.ts index 4597768..e127632 100644 --- a/package-shared/functions/backend/db/updateDbEntry.ts +++ b/package-shared/functions/backend/db/updateDbEntry.ts @@ -1,13 +1,12 @@ import sanitizeHtml from "sanitize-html"; import sanitizeHtmlOptions from "../html/sanitizeHtmlOptions"; -import DB_HANDLER from "../../../utils/backend/global-db/DB_HANDLER"; -import DSQL_USER_DB_HANDLER from "../../../utils/backend/global-db/DSQL_USER_DB_HANDLER"; import encrypt from "../../dsql/encrypt"; -import LOCAL_DB_HANDLER from "../../../utils/backend/global-db/LOCAL_DB_HANDLER"; +import checkIfIsMaster from "../../../utils/check-if-is-master"; +import connDbHandler from "../../../utils/db/conn-db-handler"; +import { DbContextsArray } from "./runQuery"; type Param = { - dbContext?: "Master" | "Dsql User"; - paradigm?: "Read Only" | "Full Access"; + dbContext?: (typeof DbContextsArray)[number]; dbFullName?: string; tableName: string; encryptionKey?: string; @@ -24,7 +23,6 @@ type Param = { */ export default async function updateDbEntry({ dbContext, - paradigm, dbFullName, tableName, data, @@ -39,20 +37,14 @@ export default async function updateDbEntry({ */ if (!data || !Object.keys(data).length) return null; - const isMaster = global.DSQL_USE_LOCAL - ? true - : dbContext?.match(/dsql.user/i) - ? false - : dbFullName && !dbFullName.match(/^datasquirel$/) - ? false - : true; + const isMaster = checkIfIsMaster({ dbContext, dbFullName }); - /** @type {(a1:any, a2?:any)=> any } */ - const dbHandler: (a1: any, a2?: any) => any = global.DSQL_USE_LOCAL - ? LOCAL_DB_HANDLER - : isMaster - ? DB_HANDLER - : DSQL_USER_DB_HANDLER; + const DB_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + const DB_RO_CONN = isMaster + ? global.DSQL_DB_CONN + : global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; //////////////////////////////////////// //////////////////////////////////////// @@ -162,19 +154,15 @@ export default async function updateDbEntry({ //////////////////////////////////////// //////////////////////////////////////// - const query = `UPDATE \`${dbFullName}\`.\`${tableName}\` SET ${updateKeyValueArray.join( + const query = `UPDATE ${ + isMaster ? "" : `\`${dbFullName}\`.` + }\`${tableName}\` SET ${updateKeyValueArray.join( "," )} WHERE \`${identifierColumnName}\`=?`; updateValues.push(identifierValue); - const updatedEntry = isMaster - ? await dbHandler(query, updateValues) - : await dbHandler({ - paradigm, - queryString: query, - queryValues: updateValues, - }); + const updatedEntry = await connDbHandler(DB_CONN, query, updateValues); /** * Return statement diff --git a/package-shared/functions/backend/fullAccessDbHandler.ts b/package-shared/functions/backend/fullAccessDbHandler.ts index ce5f0c5..675b495 100644 --- a/package-shared/functions/backend/fullAccessDbHandler.ts +++ b/package-shared/functions/backend/fullAccessDbHandler.ts @@ -1,7 +1,4 @@ -// @ts-check - -import DSQL_USER_DB_HANDLER from "../../utils/backend/global-db/DSQL_USER_DB_HANDLER"; -import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; +import connDbHandler from "../../utils/db/conn-db-handler"; import parseDbResults from "./parseDbResults"; import serverError from "./serverError"; @@ -26,24 +23,18 @@ export default async function fullAccessDbHandler({ */ let results; + const DB_CONN = global.DSQL_FULL_ACCESS_DB_CONN || global.DSQL_DB_CONN; + /** * Fetch from db * * @description Fetch data from db if no cache */ try { - /** ********************* Run Query */ - - results = global.DSQL_USE_LOCAL - ? await LOCAL_DB_HANDLER(queryString, queryValuesArray) - : await DSQL_USER_DB_HANDLER({ - paradigm: "Full Access", - queryString, - queryValues: queryValuesArray, - }); + results = await connDbHandler(DB_CONN, queryString, queryValuesArray); //////////////////////////////////////// - } catch (/** @type {any} */ error: any) { + } catch (error: any) { //////////////////////////////////////// serverError({ @@ -55,6 +46,8 @@ export default async function fullAccessDbHandler({ * Return error */ return error.message; + } finally { + DB_CONN?.end(); } /** diff --git a/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts b/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts index 3646cfe..5f088de 100644 --- a/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts +++ b/package-shared/functions/backend/varReadOnlyDatabaseDbHandler.ts @@ -1,10 +1,6 @@ -// @ts-check - -import fs from "fs"; import serverError from "./serverError"; import parseDbResults from "./parseDbResults"; -import DSQL_USER_DB_HANDLER from "../../utils/backend/global-db/DSQL_USER_DB_HANDLER"; -import LOCAL_DB_HANDLER from "../../utils/backend/global-db/LOCAL_DB_HANDLER"; +import connDbHandler from "../../utils/db/conn-db-handler"; type Param = { queryString: string; @@ -28,22 +24,18 @@ export default async function varReadOnlyDatabaseDbHandler({ */ 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 = global.DSQL_USE_LOCAL - ? await LOCAL_DB_HANDLER(queryString, queryValuesArray) - : await DSQL_USER_DB_HANDLER({ - paradigm: "Read Only", - queryString, - queryValues: queryValuesArray, - }); + results = await connDbHandler(DB_CONN, queryString, queryValuesArray); //////////////////////////////////////// - } catch (/** @type {any} */ error: any) { + } catch (error: any) { //////////////////////////////////////// serverError({ @@ -56,6 +48,8 @@ export default async function varReadOnlyDatabaseDbHandler({ * Return error */ return error.message; + } finally { + DB_CONN?.end(); } /** diff --git a/package-shared/types/index.ts b/package-shared/types/index.ts index 30a484b..3b3f7a6 100644 --- a/package-shared/types/index.ts +++ b/package-shared/types/index.ts @@ -1446,3 +1446,11 @@ export type HttpFunctionResponse< str?: string; requestedPath?: string; }; + +export type ApiGetQueryObject< + T extends { [k: string]: any } = { [k: string]: any } +> = { + query: ServerQueryParam; + table: string; + dbFullName?: string; +}; diff --git a/package-shared/utils/check-if-is-master.ts b/package-shared/utils/check-if-is-master.ts new file mode 100644 index 0000000..b2f7703 --- /dev/null +++ b/package-shared/utils/check-if-is-master.ts @@ -0,0 +1,14 @@ +type Param = { + dbContext?: "Master" | "Dsql User"; + dbFullName?: string; +}; + +export default function checkIfIsMaster({ dbContext, dbFullName }: Param) { + return dbContext?.match(/dsql.user/i) + ? false + : global.DSQL_USE_LOCAL + ? true + : dbFullName && !dbFullName.match(/^datasquirel$/) + ? false + : true; +} diff --git a/utils/get/(utils)/grab-query-and-values.ts b/package-shared/utils/grab-query-and-values.ts similarity index 89% rename from utils/get/(utils)/grab-query-and-values.ts rename to package-shared/utils/grab-query-and-values.ts index 7189a4c..1a439d8 100644 --- a/utils/get/(utils)/grab-query-and-values.ts +++ b/package-shared/utils/grab-query-and-values.ts @@ -1,5 +1,5 @@ -import { ApiGetQueryObject } from ".."; -import sqlGenerator from "../../../package-shared/functions/dsql/sql/sql-generator"; +import sqlGenerator from "../functions/dsql/sql/sql-generator"; +import { ApiGetQueryObject } from "../types"; type Param = { query: string | ApiGetQueryObject; diff --git a/package.json b/package.json index 02c2d1c..33fb83a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "3.8.3", + "version": "3.8.4", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": { diff --git a/utils/get/index.ts b/utils/get.ts similarity index 86% rename from utils/get/index.ts rename to utils/get.ts index aa6f1f1..d63ca82 100644 --- a/utils/get/index.ts +++ b/utils/get.ts @@ -1,24 +1,17 @@ import https from "node:https"; import path from "path"; import fs from "fs"; -import grabHostNames from "../../package-shared/utils/grab-host-names"; -import apiGet from "../../package-shared/functions/api/query/get"; -import serializeQuery from "../../package-shared/utils/serialize-query"; +import grabHostNames from "../package-shared/utils/grab-host-names"; +import apiGet from "../package-shared/functions/api/query/get"; +import serializeQuery from "../package-shared/utils/serialize-query"; import { + ApiGetQueryObject, DSQL_DatabaseSchemaType, GetReqQueryObject, GetReturn, ServerQueryParam, -} from "../../package-shared/types"; -import apiGetGrabQueryAndValues from "./(utils)/grab-query-and-values"; - -export type ApiGetQueryObject< - T extends { [k: string]: any } = { [k: string]: any } -> = { - query: ServerQueryParam; - table: string; - dbFullName?: string; -}; +} from "../package-shared/types"; +import apiGetGrabQueryAndValues from "../package-shared/utils/grab-query-and-values"; type Param = { key?: string;