You're viewing an archived version of our docs. Check out our current documentation →

Create or update or delete composition rules

Create or update or delete multiple composition rules.

Usage

Required ACL: editSettings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { compositionClient } from '@algolia/composition';

const client = compositionClient('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY');

const response = await client.saveRules({
  compositionID: 'rule-with-exernal-source',
  rules: {
    requests: [
      {
        action: 'upsert',
        body: {
          objectID: 'rule-with-exernal-source',
          description: 'my description',
          tags: ['tag1', 'tag2'],
          enabled: true,
          validity: [{ from: 1704063600, until: 1704083600 }],
          conditions: [
            { anchoring: 'contains', pattern: 'harry' },
            { anchoring: 'contains', pattern: 'potter' },
          ],
          consequence: {
            behavior: {
              injection: {
                main: { source: { search: { index: 'my-index', params: { filters: 'brand:adidas' } } } },
                injectedItems: [
                  {
                    key: 'injectedItem',
                    source: {
                      external: { index: 'my-index', params: { filters: 'brand:adidas' }, ordering: 'userDefined' },
                    },
                    position: 0,
                    length: 3,
                  },
                ],
              },
            },
          },
        },
      },
    ],
  },
});