This commit is contained in:
Benjamin Toby 2025-12-27 16:40:30 +01:00
parent 0dc8f3c787
commit 49276d4cb3
3 changed files with 79 additions and 79 deletions

View File

@ -50,6 +50,37 @@ function checks(_a) {
} }
} }
} }
if ((_e = newQuery === null || newQuery === void 0 ? void 0 : newQuery.searchQuery) === null || _e === void 0 ? void 0 : _e.join) {
for (let i = 0; i < newQuery.searchQuery.join.length; i++) {
const join = newQuery.searchQuery.join[i];
const joinTableName = join.tableName;
const selectFields = join.selectFields;
if (allowedTables === null || allowedTables === void 0 ? void 0 : allowedTables[0]) {
const allowedJoinTable = allowedTables.find((t) => t.table == joinTableName);
if (!(allowedJoinTable === null || allowedJoinTable === void 0 ? void 0 : allowedJoinTable.table)) {
throw new Error(`Can't joint \`${joinTableName}\` table`);
}
const allowedFields = allowedJoinTable.allowedFields;
const disallowedFields = allowedJoinTable.disallowedFields;
if (selectFields === null || selectFields === void 0 ? void 0 : selectFields[0]) {
for (let j = 0; j < selectFields.length; j++) {
const selectField = selectFields[j];
const selectFieldName = typeof selectField == "object"
? selectField.field
: String(selectField);
if ((allowedFields === null || allowedFields === void 0 ? void 0 : allowedFields[0]) &&
!allowedFields.find((f) => String(f) == selectFieldName)) {
throw new Error(`Can't Select this Field!`);
}
if ((disallowedFields === null || disallowedFields === void 0 ? void 0 : disallowedFields[0]) &&
disallowedFields.find((f) => String(f) == selectFieldName)) {
throw new Error(`Disallowed Field Selected!`);
}
}
}
}
}
}
if (method == "GET" && getMiddleware) { if (method == "GET" && getMiddleware) {
newQuery = yield getMiddleware({ newQuery = yield getMiddleware({
query: newQuery || {}, query: newQuery || {},
@ -88,37 +119,6 @@ function checks(_a) {
}); });
newBody = lodash_1.default.merge(newBody, middRes); newBody = lodash_1.default.merge(newBody, middRes);
} }
if ((_e = newQuery === null || newQuery === void 0 ? void 0 : newQuery.searchQuery) === null || _e === void 0 ? void 0 : _e.join) {
for (let i = 0; i < newQuery.searchQuery.join.length; i++) {
const join = newQuery.searchQuery.join[i];
const joinTableName = join.tableName;
const selectFields = join.selectFields;
if (allowedTables === null || allowedTables === void 0 ? void 0 : allowedTables[0]) {
const allowedJoinTable = allowedTables.find((t) => t.table == joinTableName);
if (!(allowedJoinTable === null || allowedJoinTable === void 0 ? void 0 : allowedJoinTable.table)) {
throw new Error(`Can't joint \`${joinTableName}\` table`);
}
const allowedFields = allowedJoinTable.allowedFields;
const disallowedFields = allowedJoinTable.disallowedFields;
if (selectFields === null || selectFields === void 0 ? void 0 : selectFields[0]) {
for (let j = 0; j < selectFields.length; j++) {
const selectField = selectFields[j];
const selectFieldName = typeof selectField == "object"
? selectField.field
: String(selectField);
if ((allowedFields === null || allowedFields === void 0 ? void 0 : allowedFields[0]) &&
!allowedFields.find((f) => String(f) == selectFieldName)) {
throw new Error(`Can't Select this Field!`);
}
if ((disallowedFields === null || disallowedFields === void 0 ? void 0 : disallowedFields[0]) &&
disallowedFields.find((f) => String(f) == selectFieldName)) {
throw new Error(`Disallowed Field Selected!`);
}
}
}
}
}
}
return { return {
query: newQuery, query: newQuery,
body: newBody, body: newBody,

View File

@ -69,53 +69,6 @@ export default async function checks<
} }
} }
if (method == "GET" && getMiddleware) {
newQuery = await getMiddleware({
query: newQuery || ({} as any),
table,
});
}
if (method !== "GET" && crudMiddleware) {
const middRes = await crudMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "POST" && postMiddleware) {
const middRes = await postMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "PUT" && putMiddleware) {
const middRes = await putMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "DELETE" && deleteMiddleware) {
const middRes = await deleteMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (newQuery?.searchQuery?.join) { if (newQuery?.searchQuery?.join) {
for (let i = 0; i < newQuery.searchQuery.join.length; i++) { for (let i = 0; i < newQuery.searchQuery.join.length; i++) {
const join = newQuery.searchQuery.join[i]; const join = newQuery.searchQuery.join[i];
@ -165,6 +118,53 @@ export default async function checks<
} }
} }
if (method == "GET" && getMiddleware) {
newQuery = await getMiddleware({
query: newQuery || ({} as any),
table,
});
}
if (method !== "GET" && crudMiddleware) {
const middRes = await crudMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "POST" && postMiddleware) {
const middRes = await postMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "PUT" && putMiddleware) {
const middRes = await putMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
if (method == "DELETE" && deleteMiddleware) {
const middRes = await deleteMiddleware({
body: newBody || ({} as any),
query: newQuery || {},
table,
});
newBody = _.merge(newBody, middRes);
}
return { return {
query: newQuery, query: newQuery,
body: newBody, body: newBody,

View File

@ -1,6 +1,6 @@
{ {
"name": "@moduletrace/datasquirel", "name": "@moduletrace/datasquirel",
"version": "5.6.5", "version": "5.6.6",
"description": "Cloud-based SQL data management tool", "description": "Cloud-based SQL data management tool",
"main": "dist/index.js", "main": "dist/index.js",
"bin": { "bin": {