@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
18 lines (16 loc) • 681 B
JavaScript
import { isValidUuid } from "./is-valid-uuid.js";
import { ForbiddenError } from "@directus/errors";
//#region src/utils/validate-keys.ts
/**
* Validate keys based on its type
*/
function validateKeys(schema, collection, keyField, keys) {
if (Array.isArray(keys)) for (const key of keys) validateKeys(schema, collection, keyField, key);
else {
const primaryKeyFieldType = schema.collections[collection]?.fields[keyField]?.type;
if (primaryKeyFieldType === "uuid" && !isValidUuid(String(keys))) throw new ForbiddenError();
else if (primaryKeyFieldType === "integer" && !Number.isInteger(Number(keys))) throw new ForbiddenError();
}
}
//#endregion
export { validateKeys };