This commit is contained in:
Adria Navarro 2024-08-07 12:37:37 +02:00
parent 8191552352
commit 42b6b6e919
1 changed files with 6 additions and 26 deletions

View File

@ -5,12 +5,10 @@ import {
SearchViewRowRequest, SearchViewRowRequest,
RequiredKeys, RequiredKeys,
RowSearchParams, RowSearchParams,
SearchFilterKey,
LogicalOperator,
} from "@budibase/types" } from "@budibase/types"
import { dataFilters } from "@budibase/shared-core" import { dataFilters } from "@budibase/shared-core"
import sdk from "../../../sdk" import sdk from "../../../sdk"
import { db, context } from "@budibase/backend-core" import { context } from "@budibase/backend-core"
import { enrichSearchContext } from "./utils" import { enrichSearchContext } from "./utils"
export async function searchView( export async function searchView(
@ -36,33 +34,15 @@ export async function searchView(
// that could let users find rows they should not be allowed to access. // that could let users find rows they should not be allowed to access.
let query = dataFilters.buildQuery(view.query || []) let query = dataFilters.buildQuery(view.query || [])
if (body.query) { if (body.query) {
// Extract existing fields
const existingFields =
view.query
?.filter(filter => filter.field)
.map(filter => db.removeKeyNumbering(filter.field)) || []
// Delete extraneous search params that cannot be overridden // Delete extraneous search params that cannot be overridden
delete body.query.allOr delete body.query.allOr
delete body.query.onEmptyFilter delete body.query.onEmptyFilter
// Carry over filters for unused fields query = {
Object.keys(body.query).forEach(key => { $and: {
const operator = key as SearchFilterKey conditions: [query, body.query],
},
Object.keys(body.query[operator] || {}).forEach(field => { }
if (!existingFields.includes(db.removeKeyNumbering(field))) {
if (
operator === LogicalOperator.AND ||
operator === LogicalOperator.OR
) {
// TODO
} else {
query[operator]![field] = body.query[operator]![field]
}
}
})
})
} }
await context.ensureSnippetContext(true) await context.ensureSnippetContext(true)