directus

Форк
0
/
validate-keys.ts 
27 строк · 780.0 Байт
1
import { ForbiddenError } from '@directus/errors';
2
import type { PrimaryKey, SchemaOverview } from '@directus/types';
3
import { isValidUuid } from './is-valid-uuid.js';
4

5
/**
6
 * Validate keys based on its type
7
 */
8
export function validateKeys(
9
	schema: SchemaOverview,
10
	collection: string,
11
	keyField: string,
12
	keys: PrimaryKey | PrimaryKey[],
13
) {
14
	if (Array.isArray(keys)) {
15
		for (const key of keys) {
16
			validateKeys(schema, collection, keyField, key);
17
		}
18
	} else {
19
		const primaryKeyFieldType = schema.collections[collection]?.fields[keyField]?.type;
20

21
		if (primaryKeyFieldType === 'uuid' && !isValidUuid(String(keys))) {
22
			throw new ForbiddenError();
23
		} else if (primaryKeyFieldType === 'integer' && !Number.isInteger(Number(keys))) {
24
			throw new ForbiddenError();
25
		}
26
	}
27
}
28

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.