@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
23 lines (22 loc) • 919 B
JavaScript
import { defineOperationApi } from '@directus/extensions';
import { parseFilter, validatePayload } from '@directus/utils';
import { FailedValidationError, joiValidationErrorItemToErrorExtensions } from '@directus/validation';
export default defineOperationApi({
id: 'condition',
handler: ({ filter }, { data, accountability }) => {
const parsedFilter = parseFilter(filter, accountability, undefined, true);
if (!parsedFilter) {
return null;
}
const errors = validatePayload(parsedFilter, data, { requireAll: true });
if (errors.length > 0) {
const validationErrors = errors
.map((error) => error.details.map((details) => new FailedValidationError(joiValidationErrorItemToErrorExtensions(details))))
.flat();
throw validationErrors;
}
else {
return null;
}
},
});