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

Batch action to multiple compositions

Adds, updates, or deletes compositions with a single API request.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import 'package:algolia_client_composition/algolia_client_composition.dart';

final client = CompositionClient(
    appId: 'ALGOLIA_APPLICATION_ID', apiKey: 'ALGOLIA_API_KEY');

final response = await client.multipleBatch(
  batchParams: BatchParams(
    requests: [
      MultipleBatchRequest(
        action: Action.fromJson("upsert"),
        body: Composition(
          objectID: "my-metadata-compo",
          name: "my composition",
          behavior: CompositionBehavior(
            injection: Injection(
              main: Main(
                source: CompositionSource(
                  search: CompositionSourceSearch(
                    index: "foo",
                    params: MainInjectionQueryParameters(
                      filters: "brand:adidas",
                    ),
                  ),
                ),
              ),
              injectedItems: [
                InjectedItem(
                  key: "injectedItem1",
                  source: SearchSource(
                    search: Search(
                      index: "foo",
                      params: BaseInjectionQueryParameters(
                        filters: "brand:adidas",
                      ),
                    ),
                  ),
                  position: 2,
                  length: 1,
                  metadata: InjectedItemMetadata(
                    hits: InjectedItemHitsMetadata(
                      addItemKey: true,
                      extra: {
                        'my-string': "string",
                        'my-bool': true,
                        'my-number': 42,
                        'my-object': {
                          'sub-key': 'sub-value',
                        },
                      },
                    ),
                  ),
                ),
                InjectedItem(
                  key: "externalItem",
                  source: SearchSource(
                    search: Search(
                      index: "foo",
                      params: BaseInjectionQueryParameters(
                        filters: "brand:puma",
                      ),
                    ),
                  ),
                  position: 5,
                  length: 5,
                  metadata: InjectedItemMetadata(
                    hits: InjectedItemHitsMetadata(
                      addItemKey: true,
                      extra: {
                        'my-string': "string",
                        'my-bool': true,
                        'my-number': 42,
                        'my-object': {
                          'sub-key': 'sub-value',
                        },
                      },
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    ],
  ),
);