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
require "algolia"

client = Algolia::CompositionClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")

response = client.multiple_batch(
  Algolia::Composition::BatchParams.new(
    requests: [
      Algolia::Composition::MultipleBatchRequest.new(
        action: "upsert",
        body: Algolia::Composition::Composition.new(
          algolia_object_id: "my-metadata-compo",
          name: "my composition",
          behavior: Algolia::Composition::CompositionBehavior.new(
            injection: Algolia::Composition::Injection.new(
              main: Algolia::Composition::Main.new(
                source: Algolia::Composition::CompositionSource.new(
                  search: Algolia::Composition::CompositionSourceSearch.new(
                    index: "foo",
                    params: Algolia::Composition::MainInjectionQueryParameters.new(filters: "brand:adidas")
                  )
                )
              ),
              injected_items: [
                Algolia::Composition::InjectedItem.new(
                  key: "injectedItem1",
                  source: Algolia::Composition::SearchSource.new(
                    search: Algolia::Composition::Search.new(
                      index: "foo",
                      params: Algolia::Composition::BaseInjectionQueryParameters.new(filters: "brand:adidas")
                    )
                  ),
                  position: 2,
                  length: 1,
                  metadata: Algolia::Composition::InjectedItemMetadata.new(
                    hits: Algolia::Composition::InjectedItemHitsMetadata.new(
                      add_item_key: true,
                      extra: {
                        :"my-string" => "string",
                        :"my-bool" => true,
                        :"my-number" => 42,
                        :"my-object" => {:"sub-key" => "sub-value"}
                      }
                    )
                  )
                ),
                Algolia::Composition::InjectedItem.new(
                  key: "externalItem",
                  source: Algolia::Composition::SearchSource.new(
                    search: Algolia::Composition::Search.new(
                      index: "foo",
                      params: Algolia::Composition::BaseInjectionQueryParameters.new(filters: "brand:puma")
                    )
                  ),
                  position: 5,
                  length: 5,
                  metadata: Algolia::Composition::InjectedItemMetadata.new(
                    hits: Algolia::Composition::InjectedItemHitsMetadata.new(
                      add_item_key: true,
                      extra: {
                        :"my-string" => "string",
                        :"my-bool" => true,
                        :"my-number" => 42,
                        :"my-object" => {:"sub-key" => "sub-value"}
                      }
                    )
                  )
                )
              ]
            )
          )
        )
      )
    ]
  )
)