This commit is contained in:
2025-12-03 06:21:14 +01:00
parent 0858b18344
commit 7959014721
15 changed files with 165 additions and 117 deletions
+2 -1
View File
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = addDbEntry;
const sql_formatter_1 = require("sql-formatter");
const updateDbEntry_1 = __importDefault(require("./updateDbEntry"));
const lodash_1 = __importDefault(require("lodash"));
const conn_db_handler_1 = __importDefault(require("../../../utils/db/conn-db-handler"));
@@ -191,7 +192,7 @@ function addDbEntry(_a) {
success: Boolean(newInsert === null || newInsert === void 0 ? void 0 : newInsert.insertId),
payload: newInsert,
queryObject: {
sql: query,
sql: (0, sql_formatter_1.format)(query),
params: finalQueryValues,
},
};
+2 -1
View File
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = updateDbEntry;
const sql_formatter_1 = require("sql-formatter");
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"));
const lodash_1 = __importDefault(require("lodash"));
@@ -109,7 +110,7 @@ function updateDbEntry(_a) {
success: Boolean(updatedEntry === null || updatedEntry === void 0 ? void 0 : updatedEntry.affectedRows),
payload: updatedEntry,
queryObject: {
sql: query,
sql: (0, sql_formatter_1.format)(query),
params: updateValues,
},
debug: debug ? { data, newData } : undefined,
+47 -46
View File
@@ -77,55 +77,9 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
else if (operatorStrParam.str) {
str = operatorStrParam.str;
}
// if (queryObj.equality == "LIKE") {
// str = `LOWER(${finalFieldName}) LIKE LOWER('%${valueParsed}%')`;
// } else if (queryObj.equality == "LIKE_RAW") {
// str = `LOWER(${finalFieldName}) LIKE LOWER(?)`;
// sqlSearhValues.push(valueParsed);
// } else if (queryObj.equality == "NOT LIKE") {
// str = `LOWER(${finalFieldName}) NOT LIKE LOWER('%${valueParsed}%')`;
// } else if (queryObj.equality == "NOT LIKE_RAW") {
// str = `LOWER(${finalFieldName}) NOT LIKE LOWER(?)`;
// sqlSearhValues.push(valueParsed);
// } else if (queryObj.equality == "REGEXP") {
// str = `LOWER(${finalFieldName}) REGEXP LOWER(?)`;
// sqlSearhValues.push(valueParsed);
// } else if (queryObj.equality == "FULLTEXT") {
// str = `MATCH(${finalFieldName}) AGAINST(? IN BOOLEAN MODE)`;
// sqlSearhValues.push(valueParsed);
// } else if (queryObj.equality == "NOT EQUAL") {
// str = `${finalFieldName} != ?`;
// sqlSearhValues.push(valueParsed);
// } else if (queryObj.equality) {
// str = `${finalFieldName} ${operator} ?`;
// sqlSearhValues.push(valueParsed);
// } else {
// sqlSearhValues.push(valueParsed);
// }
}
return str;
}
const sqlSearhString = queryKeys === null || queryKeys === void 0 ? void 0 : queryKeys.map((field) => {
const queryObj = finalQuery === null || finalQuery === void 0 ? void 0 : finalQuery[field];
if (!queryObj)
return;
if (queryObj.__query) {
const subQueryGroup = queryObj.__query;
const subSearchKeys = Object.keys(subQueryGroup);
const subSearchString = subSearchKeys.map((_field) => {
const newSubQueryObj = subQueryGroup === null || subQueryGroup === void 0 ? void 0 : subQueryGroup[_field];
return genSqlSrchStr({
queryObj: newSubQueryObj,
field: _field,
join: genObject === null || genObject === void 0 ? void 0 : genObject.join,
});
});
return ("(" +
subSearchString.join(` ${queryObj.operator || "AND"} `) +
")");
}
return genSqlSrchStr({ queryObj, field, join: genObject === null || genObject === void 0 ? void 0 : genObject.join });
});
function generateJoinStr(mtch, join) {
return `${finalDbName}${typeof mtch.source == "object" ? mtch.source.tableName : tableName}.${typeof mtch.source == "object" ? mtch.source.fieldName : mtch.source}=${(() => {
if (mtch.targetLiteral) {
@@ -173,6 +127,32 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
str += " *";
}
}
if (genObject === null || genObject === void 0 ? void 0 : genObject.countSubQueries) {
let countSqls = [];
for (let i = 0; i < genObject.countSubQueries.length; i++) {
const countSubQuery = genObject.countSubQueries[i];
let subQStr = `(SELECT COUNT(*)`;
subQStr += ` FROM ${countSubQuery.table}`;
subQStr += ` WHERE (`;
for (let j = 0; j < countSubQuery.srcTrgMap.length; j++) {
const csqSrc = countSubQuery.srcTrgMap[j];
subQStr += ` ${countSubQuery.table}.${csqSrc.src}`;
if (typeof csqSrc.trg == "string") {
subQStr += ` = ?`;
sqlSearhValues.push(csqSrc.trg);
}
else if (typeof csqSrc.trg == "object") {
subQStr += ` = ${csqSrc.trg.table}.${csqSrc.trg.field}`;
}
if (j < countSubQuery.srcTrgMap.length - 1) {
subQStr += ` AND `;
}
}
subQStr += ` )) AS ${countSubQuery.alias}`;
countSqls.push(subQStr);
}
str += `, ${countSqls.join(",")}`;
}
if ((genObject === null || genObject === void 0 ? void 0 : genObject.join) && !count) {
const existingJoinTableNames = [tableName];
str +=
@@ -242,6 +222,27 @@ function sqlGenerator({ tableName, genObject, dbFullName, count }) {
}
return str;
})();
const sqlSearhString = queryKeys === null || queryKeys === void 0 ? void 0 : queryKeys.map((field) => {
const queryObj = finalQuery === null || finalQuery === void 0 ? void 0 : finalQuery[field];
if (!queryObj)
return;
if (queryObj.__query) {
const subQueryGroup = queryObj.__query;
const subSearchKeys = Object.keys(subQueryGroup);
const subSearchString = subSearchKeys.map((_field) => {
const newSubQueryObj = subQueryGroup === null || subQueryGroup === void 0 ? void 0 : subQueryGroup[_field];
return genSqlSrchStr({
queryObj: newSubQueryObj,
field: _field,
join: genObject === null || genObject === void 0 ? void 0 : genObject.join,
});
});
return ("(" +
subSearchString.join(` ${queryObj.operator || "AND"} `) +
")");
}
return genSqlSrchStr({ queryObj, field, join: genObject === null || genObject === void 0 ? void 0 : genObject.join });
});
if ((sqlSearhString === null || sqlSearhString === void 0 ? void 0 : sqlSearhString[0]) && sqlSearhString.find((str) => str)) {
const stringOperator = (genObject === null || genObject === void 0 ? void 0 : genObject.searchOperator) || "AND";
queryString += ` WHERE ${sqlSearhString.join(` ${stringOperator} `)}`;