diff --git a/dist/package-shared/functions/backend/queues/add-queue.d.ts b/dist/package-shared/functions/backend/queues/add-queue.d.ts index 3ece844..d14f152 100644 --- a/dist/package-shared/functions/backend/queues/add-queue.d.ts +++ b/dist/package-shared/functions/backend/queues/add-queue.d.ts @@ -4,8 +4,5 @@ type Param = { userId: string | number; dummy?: boolean; }; -export default function addQueue({ queue, userId, dummy }: Param): Promise<(import("../../../types").PostReturn & { - queryObject?: ReturnType>; - count?: number; -}) | null | undefined>; +export default function addQueue({ queue, userId, dummy }: Param): Promise; export {}; diff --git a/dist/package-shared/utils/data-fetching/crud-batch-get.d.ts b/dist/package-shared/utils/data-fetching/crud-batch-get.d.ts new file mode 100644 index 0000000..e69de29 diff --git a/dist/package-shared/utils/data-fetching/crud-batch-get.js b/dist/package-shared/utils/data-fetching/crud-batch-get.js new file mode 100644 index 0000000..6fe193b --- /dev/null +++ b/dist/package-shared/utils/data-fetching/crud-batch-get.js @@ -0,0 +1,36 @@ +"use strict"; +// import sqlGenerator from "../../functions/dsql/sql/sql-generator"; +// import { DsqlCrudParam } from "../../types"; +// import connDbHandler, { ConnDBHandlerQueryObject } from "../db/conn-db-handler"; +// import { DsqlCrudReturn } from "./crud"; +// export default async function dsqlCrudBatchGet({ +// batchQuery, +// }: DsqlCrudParam): Promise { +// try { +// const queryObjects = batchQuery?.map((q) => +// sqlGenerator({ +// tableName: q.tableName, +// genObject: q, +// }) +// ); +// const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; +// let connQueries: ConnDBHandlerQueryObject[] | undefined = +// queryObjects?.map((q) => ({ +// query: q.string, +// values: q.values, +// })); +// if (!connQueries) return null; +// const res = (await connDbHandler(DB_CONN, connQueries)) as any[][]; +// const isSuccess = Array.isArray(res) && Array.isArray(res[0]); +// if (!isSuccess) return null; +// return { +// success: isSuccess, +// batchPayload: isSuccess ? res : null, +// }; +// } catch (error: any) { +// return { +// success: false, +// error: error.message, +// }; +// } +// } diff --git a/dist/package-shared/utils/data-fetching/crud-get.d.ts b/dist/package-shared/utils/data-fetching/crud-get.d.ts new file mode 100644 index 0000000..1de729b --- /dev/null +++ b/dist/package-shared/utils/data-fetching/crud-get.d.ts @@ -0,0 +1,3 @@ +import { DsqlCrudParam } from "../../types"; +import { DsqlCrudReturn } from "./crud"; +export default function dsqlCrudGet({ table, query, count, countOnly, }: DsqlCrudParam): Promise; diff --git a/dist/package-shared/utils/data-fetching/crud-get.js b/dist/package-shared/utils/data-fetching/crud-get.js new file mode 100644 index 0000000..59ce356 --- /dev/null +++ b/dist/package-shared/utils/data-fetching/crud-get.js @@ -0,0 +1,70 @@ +"use strict"; +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) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = dsqlCrudGet; +const sql_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-generator")); +const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); +function dsqlCrudGet(_a) { + return __awaiter(this, arguments, void 0, function* ({ table, query, count, countOnly, }) { + var _b, _c, _d, _e; + let queryObject; + queryObject = (0, sql_generator_1.default)({ + tableName: table, + genObject: query, + }); + const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + let connQueries = [ + { + query: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, + values: (queryObject === null || queryObject === void 0 ? void 0 : queryObject.values) || [], + }, + ]; + const countQueryObject = count || countOnly + ? (0, sql_generator_1.default)({ + tableName: table, + genObject: query, + count: true, + }) + : undefined; + if (count && countQueryObject) { + connQueries.push({ + query: countQueryObject.string, + values: countQueryObject.values, + }); + } + else if (countOnly && countQueryObject) { + connQueries = [ + { + query: countQueryObject.string, + values: countQueryObject.values, + }, + ]; + } + const res = yield (0, conn_db_handler_1.default)(DB_CONN, connQueries); + const isSuccess = Array.isArray(res) && Array.isArray(res[0]); + return { + success: isSuccess, + payload: isSuccess ? (countOnly ? null : res[0]) : null, + error: isSuccess ? undefined : res === null || res === void 0 ? void 0 : res.error, + queryObject, + count: isSuccess + ? ((_c = (_b = res[1]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c["COUNT(*)"]) + ? res[1][0]["COUNT(*)"] + : ((_e = (_d = res[0]) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e["COUNT(*)"]) + ? res[0][0]["COUNT(*)"] + : undefined + : undefined, + }; + }); +} diff --git a/dist/package-shared/utils/data-fetching/crud.d.ts b/dist/package-shared/utils/data-fetching/crud.d.ts index b302ed4..c09b5dd 100644 --- a/dist/package-shared/utils/data-fetching/crud.d.ts +++ b/dist/package-shared/utils/data-fetching/crud.d.ts @@ -1,10 +1,12 @@ import sqlGenerator from "../../functions/dsql/sql/sql-generator"; import { DsqlCrudParam, PostReturn } from "../../types"; +export type DsqlCrudReturn = (PostReturn & { + queryObject?: ReturnType>; + count?: number; + batchPayload?: any[][] | null; +}) | null; export default function dsqlCrud({ action, data, table, targetValue, query, sanitize, debug, targetField, targetId, count, countOnly, }: DsqlCrudParam): Promise<(PostReturn & { - queryObject?: ReturnType>; - count?: number; -}) | null>; +}>(params: DsqlCrudParam): Promise; diff --git a/dist/package-shared/utils/data-fetching/crud.js b/dist/package-shared/utils/data-fetching/crud.js index c30c95e..abb4550 100644 --- a/dist/package-shared/utils/data-fetching/crud.js +++ b/dist/package-shared/utils/data-fetching/crud.js @@ -14,62 +14,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); exports.default = dsqlCrud; const post_1 = __importDefault(require("../../actions/post")); -const sql_generator_1 = __importDefault(require("../../functions/dsql/sql/sql-generator")); -const conn_db_handler_1 = __importDefault(require("../db/conn-db-handler")); -function dsqlCrud(_a) { - return __awaiter(this, arguments, void 0, function* ({ action, data, table, targetValue, query, sanitize, debug, targetField, targetId, count, countOnly, }) { - var _b, _c, _d, _e; +// import dsqlCrudBatchGet from "./crud-batch-get"; +const crud_get_1 = __importDefault(require("./crud-get")); +function dsqlCrud(params) { + return __awaiter(this, void 0, void 0, function* () { + const { action, data, table, targetValue, sanitize, targetField, targetId, } = params; const finalData = sanitize ? sanitize(data) : data; - let queryObject; switch (action) { case "get": - queryObject = (0, sql_generator_1.default)({ - tableName: table, - genObject: query, - }); - const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - let connQueries = [ - { - query: queryObject === null || queryObject === void 0 ? void 0 : queryObject.string, - values: (queryObject === null || queryObject === void 0 ? void 0 : queryObject.values) || [], - }, - ]; - const countQueryObject = count || countOnly - ? (0, sql_generator_1.default)({ - tableName: table, - genObject: query, - count: true, - }) - : undefined; - if (count && countQueryObject) { - connQueries.push({ - query: countQueryObject.string, - values: countQueryObject.values, - }); - } - else if (countOnly && countQueryObject) { - connQueries = [ - { - query: countQueryObject.string, - values: countQueryObject.values, - }, - ]; - } - const res = yield (0, conn_db_handler_1.default)(DB_CONN, connQueries); - const isSuccess = Array.isArray(res) && Array.isArray(res[0]); - return { - success: isSuccess, - payload: isSuccess ? (countOnly ? null : res[0]) : null, - error: isSuccess ? undefined : res === null || res === void 0 ? void 0 : res.error, - queryObject, - count: isSuccess - ? ((_c = (_b = res[1]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c["COUNT(*)"]) - ? res[1][0]["COUNT(*)"] - : ((_e = (_d = res[0]) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e["COUNT(*)"]) - ? res[0][0]["COUNT(*)"] - : undefined - : undefined, - }; + return yield (0, crud_get_1.default)(params); + // case "batch-get": + // return await dsqlCrudBatchGet(params); case "insert": return yield (0, post_1.default)({ query: { diff --git a/package-shared/utils/data-fetching/crud-batch-get.ts b/package-shared/utils/data-fetching/crud-batch-get.ts new file mode 100644 index 0000000..03d87f2 --- /dev/null +++ b/package-shared/utils/data-fetching/crud-batch-get.ts @@ -0,0 +1,43 @@ +// import sqlGenerator from "../../functions/dsql/sql/sql-generator"; +// import { DsqlCrudParam } from "../../types"; +// import connDbHandler, { ConnDBHandlerQueryObject } from "../db/conn-db-handler"; +// import { DsqlCrudReturn } from "./crud"; + +// export default async function dsqlCrudBatchGet({ +// batchQuery, +// }: DsqlCrudParam): Promise { +// try { +// const queryObjects = batchQuery?.map((q) => +// sqlGenerator({ +// tableName: q.tableName, +// genObject: q, +// }) +// ); + +// const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + +// let connQueries: ConnDBHandlerQueryObject[] | undefined = +// queryObjects?.map((q) => ({ +// query: q.string, +// values: q.values, +// })); + +// if (!connQueries) return null; + +// const res = (await connDbHandler(DB_CONN, connQueries)) as any[][]; + +// const isSuccess = Array.isArray(res) && Array.isArray(res[0]); + +// if (!isSuccess) return null; + +// return { +// success: isSuccess, +// batchPayload: isSuccess ? res : null, +// }; +// } catch (error: any) { +// return { +// success: false, +// error: error.message, +// }; +// } +// } diff --git a/package-shared/utils/data-fetching/crud-get.ts b/package-shared/utils/data-fetching/crud-get.ts new file mode 100644 index 0000000..5488eb0 --- /dev/null +++ b/package-shared/utils/data-fetching/crud-get.ts @@ -0,0 +1,68 @@ +import sqlGenerator from "../../functions/dsql/sql/sql-generator"; +import { DsqlCrudParam } from "../../types"; +import connDbHandler, { ConnDBHandlerQueryObject } from "../db/conn-db-handler"; +import { DsqlCrudReturn } from "./crud"; + +export default async function dsqlCrudGet({ + table, + query, + count, + countOnly, +}: DsqlCrudParam): Promise { + let queryObject: ReturnType> | undefined; + + queryObject = sqlGenerator({ + tableName: table, + genObject: query, + }); + + const DB_CONN = global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; + + let connQueries: ConnDBHandlerQueryObject[] = [ + { + query: queryObject?.string, + values: queryObject?.values || [], + }, + ]; + + const countQueryObject = + count || countOnly + ? sqlGenerator({ + tableName: table, + genObject: query, + count: true, + }) + : undefined; + + if (count && countQueryObject) { + connQueries.push({ + query: countQueryObject.string, + values: countQueryObject.values, + }); + } else if (countOnly && countQueryObject) { + connQueries = [ + { + query: countQueryObject.string, + values: countQueryObject.values, + }, + ]; + } + + const res = await connDbHandler(DB_CONN, connQueries); + + const isSuccess = Array.isArray(res) && Array.isArray(res[0]); + + return { + success: isSuccess, + payload: isSuccess ? (countOnly ? null : res[0]) : null, + error: isSuccess ? undefined : res?.error, + queryObject, + count: isSuccess + ? res[1]?.[0]?.["COUNT(*)"] + ? res[1][0]["COUNT(*)"] + : res[0]?.[0]?.["COUNT(*)"] + ? res[0][0]["COUNT(*)"] + : undefined + : undefined, + }; +} diff --git a/package-shared/utils/data-fetching/crud.ts b/package-shared/utils/data-fetching/crud.ts index 768315a..6e7fff2 100644 --- a/package-shared/utils/data-fetching/crud.ts +++ b/package-shared/utils/data-fetching/crud.ts @@ -1,90 +1,37 @@ -import get from "../../actions/get"; import post from "../../actions/post"; import sqlGenerator from "../../functions/dsql/sql/sql-generator"; import { DsqlCrudParam, PostReturn } from "../../types"; -import connDbHandler, { ConnDBHandlerQueryObject } from "../db/conn-db-handler"; +// import dsqlCrudBatchGet from "./crud-batch-get"; +import dsqlCrudGet from "./crud-get"; -export default async function dsqlCrud< - T extends { [key: string]: any } = { [key: string]: any } ->({ - action, - data, - table, - targetValue, - query, - sanitize, - debug, - targetField, - targetId, - count, - countOnly, -}: DsqlCrudParam): Promise< +export type DsqlCrudReturn = | (PostReturn & { queryObject?: ReturnType>; count?: number; + batchPayload?: any[][] | null; }) - | null -> { + | null; + +export default async function dsqlCrud< + T extends { [key: string]: any } = { [key: string]: any } +>(params: DsqlCrudParam): Promise { + const { + action, + data, + table, + targetValue, + sanitize, + targetField, + targetId, + } = params; const finalData = sanitize ? sanitize(data) : data; - let queryObject: ReturnType> | undefined; switch (action) { case "get": - queryObject = sqlGenerator({ - tableName: table, - genObject: query, - }); + return await dsqlCrudGet(params); - const DB_CONN = - global.DSQL_READ_ONLY_DB_CONN || global.DSQL_DB_CONN; - - let connQueries: ConnDBHandlerQueryObject[] = [ - { - query: queryObject?.string, - values: queryObject?.values || [], - }, - ]; - - const countQueryObject = - count || countOnly - ? sqlGenerator({ - tableName: table, - genObject: query, - count: true, - }) - : undefined; - - if (count && countQueryObject) { - connQueries.push({ - query: countQueryObject.string, - values: countQueryObject.values, - }); - } else if (countOnly && countQueryObject) { - connQueries = [ - { - query: countQueryObject.string, - values: countQueryObject.values, - }, - ]; - } - - const res = await connDbHandler(DB_CONN, connQueries); - - const isSuccess = Array.isArray(res) && Array.isArray(res[0]); - - return { - success: isSuccess, - payload: isSuccess ? (countOnly ? null : res[0]) : null, - error: isSuccess ? undefined : res?.error, - queryObject, - count: isSuccess - ? res[1]?.[0]?.["COUNT(*)"] - ? res[1][0]["COUNT(*)"] - : res[0]?.[0]?.["COUNT(*)"] - ? res[0][0]["COUNT(*)"] - : undefined - : undefined, - }; + // case "batch-get": + // return await dsqlCrudBatchGet(params); case "insert": return await post({ diff --git a/package.json b/package.json index c957674..33c4248 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "4.6.8", + "version": "4.6.9", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": {