This commit is contained in:
Benjamin Toby
2024-12-28 18:23:30 +01:00
parent 26a29ed741
commit 29fd6e6203
4 changed files with 68 additions and 19 deletions
@@ -14,15 +14,20 @@ function sqlGenerator({ tableName, genObject }) {
/** @type {string[]} */
const sqlSearhValues = [];
const sqlSearhString = queryKeys?.map((field) => {
const queryObj = finalQuery?.[field];
if (!queryObj) return;
/**
* # Generate Query
* @param {object} param
* @param {import("../../../types").ServerQueryQueryObject[string]} param.queryObj
* @param {import("../../../types").ServerQueryParamsJoin[]} [param.join]
* @param {string} [param.field]
*/
function genSqlSrchStr({ queryObj, join, field }) {
const finalFieldName = (() => {
if (queryObj?.tableName) {
return `${queryObj.tableName}.${field}`;
}
if (genObject.join) {
if (join) {
return `${tableName}.${field}`;
}
return field;
@@ -66,6 +71,41 @@ function sqlGenerator({ tableName, genObject }) {
}
return str;
}
const sqlSearhString = queryKeys?.map((field) => {
const queryObj =
/** @type {import("../../../types").ServerQueryQueryObject} */ (
finalQuery?.[field]
);
if (!queryObj) return;
if (queryObj.__query) {
const subQueryGroup =
/** @type {import("../../../types").ServerQueryQueryObject}} */ (
queryObj.__query
);
const subSearchKeys = Object.keys(subQueryGroup);
const subSearchString = subSearchKeys.map((_field) => {
const newSubQueryObj = subQueryGroup?.[_field];
return genSqlSrchStr({
queryObj: newSubQueryObj,
field: _field,
join: genObject.join,
});
});
console.log("queryObj.operator", queryObj.operator);
return (
"(" +
subSearchString.join(` ${queryObj.operator || "AND"} `) +
")"
);
}
return genSqlSrchStr({ queryObj, field, join: genObject.join });
});
function generateJoinStr(