diff --git a/dist/package-shared/functions/api/query/get.d.ts b/dist/package-shared/functions/api/query/get.d.ts index df49736..97eb3e0 100644 --- a/dist/package-shared/functions/api/query/get.d.ts +++ b/dist/package-shared/functions/api/query/get.d.ts @@ -1,5 +1,9 @@ +import { ServerQueryParam } from "../../../types"; type Param = { - query: string; + query: string | { + query: ServerQueryParam; + table: string; + }; queryValues?: (string | number)[]; dbFullName: string; tableName?: string; diff --git a/dist/utils/get.d.ts b/dist/utils/get.d.ts index 24fcf3e..ec037d4 100644 --- a/dist/utils/get.d.ts +++ b/dist/utils/get.d.ts @@ -1,14 +1,20 @@ -import { GetReturn } from "../package-shared/types"; +import { GetReturn, ServerQueryParam } from "../package-shared/types"; +export type ApiGetQueryObject = { + query: ServerQueryParam; + table: string; + dbFullName?: string; +}; type Param = { key?: string; db?: string; - query: string; + query: string | ApiGetQueryObject; queryValues?: string[]; tableName?: string; useLocal?: boolean; user_id?: string | number; debug?: boolean; }; +export type ApiGetParams = Param; /** * # Make a get request to Datasquirel API */ diff --git a/dist/utils/get.js b/dist/utils/get.js index 867786c..4ad3b98 100644 --- a/dist/utils/get.js +++ b/dist/utils/get.js @@ -18,6 +18,7 @@ const fs_1 = __importDefault(require("fs")); const grab_host_names_1 = __importDefault(require("../package-shared/utils/grab-host-names")); const get_1 = __importDefault(require("../package-shared/functions/api/query/get")); const serialize_query_1 = __importDefault(require("../package-shared/utils/serialize-query")); +const sql_generator_1 = __importDefault(require("../package-shared/functions/dsql/sql/sql-generator")); /** * # Make a get request to Datasquirel API */ @@ -62,12 +63,27 @@ function get(_a) { * @description make a request to datasquirel.com */ const httpResponse = yield new Promise((resolve, reject) => { + const queryGenObject = typeof query == "string" + ? undefined + : (0, sql_generator_1.default)({ + tableName: query.table, + genObject: query.query, + dbFullName: query.dbFullName || "__db", + }); const queryObject = { db: process.env.DSQL_API_DB_NAME || String(db), - query: String(query.replace(/\n|\r|\n\r/g, "").replace(/ {2,}/g, " ")), - queryValues: queryValues - ? JSON.stringify(queryValues) - : undefined, + query: typeof query == "string" + ? String(query + .replace(/\n|\r|\n\r/g, "") + .replace(/ {2,}/g, " ")) + : (queryGenObject === null || queryGenObject === void 0 ? void 0 : queryGenObject.string) || "", + queryValues: typeof query == "string" + ? queryValues + ? JSON.stringify(queryValues) + : undefined + : (queryGenObject === null || queryGenObject === void 0 ? void 0 : queryGenObject.values) + ? JSON.stringify(queryGenObject.values) + : undefined, tableName, debug, }; diff --git a/package-shared/functions/api/query/get.ts b/package-shared/functions/api/query/get.ts index fd9bcf5..6ae1b66 100644 --- a/package-shared/functions/api/query/get.ts +++ b/package-shared/functions/api/query/get.ts @@ -3,10 +3,19 @@ import _ from "lodash"; import serverError from "../../backend/serverError"; import runQuery from "../../backend/db/runQuery"; -import { DSQL_TableSchemaType, GetReturn } from "../../../types"; +import { + DSQL_TableSchemaType, + GetReturn, + ServerQueryParam, +} from "../../../types"; type Param = { - query: string; + query: + | string + | { + query: ServerQueryParam; + table: string; + }; queryValues?: (string | number)[]; dbFullName: string; tableName?: string; diff --git a/package.json b/package.json index d2b32bc..50fcf65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/datasquirel", - "version": "3.6.7", + "version": "3.6.8", "description": "Cloud-based SQL data management tool", "main": "dist/index.js", "bin": { diff --git a/utils/get.ts b/utils/get.ts index 7831bb3..f8a0dfa 100644 --- a/utils/get.ts +++ b/utils/get.ts @@ -4,12 +4,23 @@ 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 { GetReturn } from "../package-shared/types"; +import { + GetReqQueryObject, + GetReturn, + ServerQueryParam, +} from "../package-shared/types"; +import sqlGenerator from "../package-shared/functions/dsql/sql/sql-generator"; + +export type ApiGetQueryObject = { + query: ServerQueryParam; + table: string; + dbFullName?: string; +}; type Param = { key?: string; db?: string; - query: string; + query: string | ApiGetQueryObject; queryValues?: string[]; tableName?: string; useLocal?: boolean; @@ -17,6 +28,8 @@ type Param = { debug?: boolean; }; +export type ApiGetParams = Param; + /** * # Make a get request to Datasquirel API */ @@ -82,18 +95,36 @@ export default async function get({ * @description make a request to datasquirel.com */ const httpResponse = await new Promise((resolve, reject) => { - const queryObject: import("../package-shared/types").GetReqQueryObject = - { - db: process.env.DSQL_API_DB_NAME || String(db), - query: String( - query.replace(/\n|\r|\n\r/g, "").replace(/ {2,}/g, " ") - ), - queryValues: queryValues - ? JSON.stringify(queryValues) + const queryGenObject = + typeof query == "string" + ? undefined + : sqlGenerator({ + tableName: query.table, + genObject: query.query, + dbFullName: query.dbFullName || "__db", + }); + + const queryObject: GetReqQueryObject = { + db: process.env.DSQL_API_DB_NAME || String(db), + query: + typeof query == "string" + ? String( + query + .replace(/\n|\r|\n\r/g, "") + .replace(/ {2,}/g, " ") + ) + : queryGenObject?.string || "", + queryValues: + typeof query == "string" + ? queryValues + ? JSON.stringify(queryValues) + : undefined + : queryGenObject?.values + ? JSON.stringify(queryGenObject.values) : undefined, - tableName, - debug, - }; + tableName, + debug, + }; if (debug) { console.log("apiGet:queryObject", queryObject);