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

Upsert a composition rule

Upsert a Composition Rule for the specified composition ID.

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
import { compositionClient } from '@algolia/composition';

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

const response = await client.putCompositionRule({
  compositionID: 'compositionID',
  objectID: 'rule-with-exernal-source',
  compositionRule: {
    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,
            },
          ],
        },
      },
    },
  },
});