directus
37 строк · 1.1 Кб
1export default function registerHooks({ action }, { services }) {2const logsCollection = 'tests_extensions_log';3
4action('test_items_no_relations_artists_integer.items.create', collectionsCallback);5action('test_items_no_relations_artists_string.items.create', collectionsCallback);6action('test_items_no_relations_artists_uuid.items.create', collectionsCallback);7
8async function collectionsCallback(data, { database, schema, accountability }) {9let key = `action-verify-create/${data.collection}`;10
11const itemService = new services.ItemsService(data.collection, { schema, accountability });12
13if (!data.payload.name) return;14
15if (data.payload.name.startsWith('one')) {16key += '/one';17} else if (data.payload.name.startsWith('many')) {18key += '/many';19} else {20return;21}22
23key += `/${data.key}`;24
25try {26const item = await itemService.readOne(data.key);27
28if (item.name !== data.payload.name) {29throw 'Invalid item';30}31
32await database(logsCollection).insert({ key, value: '1' });33} catch (err) {34await database(logsCollection).insert({ key, value: '0' });35}36}37}
38