braze_ruby 0.9.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13d93e632f509eb5ccaef744c1e378092fc25c68829f0819524484c1612e5438
4
- data.tar.gz: f3827d451cf7ba1d424a23365676c74e83d0d3e999a0dfc295bacc0240de4261
3
+ metadata.gz: 4b76039a0f4cb84b70161c37d758241dd0f0fa3d4114bd407102e84ca04731d7
4
+ data.tar.gz: 8ff20890e2800b240a19798ca094d1aad8d02801b93d15b82a1831385a1cfdfd
5
5
  SHA512:
6
- metadata.gz: fc3543daf80e77fa1a59d0cbcb11825ca0078426c02802dc7acd66b48f9e745baaa0a0e7f19b86c22c7678b0732c9a04d53fbe92e521daa50e32734f12298b78
7
- data.tar.gz: 89d604660de041f123a0d051d1a075d9b51ccf389e6e2342966657ea557aa6408fc149340855523d23454106d2efba65fbb8881cb1c63cf29aad27bb9b8c042f
6
+ metadata.gz: 6c4ba02f5c3a96a1286d885dda68be3c9b939e458f040412fdbe707e36d0a3089f65e8549e2fb8f2b749be36d61a97794cc9f06fd1e4f642043902f8456c72d2
7
+ data.tar.gz: '084eec3c3b6fa0e36b2ddcec06afac74d002c9e4bfd5ae2ccb7f5788f4b970fd072d78ca7d80b2770e0880fa6d6c607a7cf166374d3af72ddaae4ee3e5bb17f2'
data/.circleci/config.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  version: 2.1
2
+
2
3
  jobs:
3
4
  test:
4
5
  parameters:
@@ -17,10 +18,16 @@ jobs:
17
18
  - run:
18
19
  name: Run tests
19
20
  command: bundle exec rake
21
+
20
22
  workflows:
21
23
  all-tests:
22
24
  jobs:
23
25
  - test:
24
- matrix:
25
- parameters:
26
- ruby-version: ["ruby:3.1.6", "ruby:3.2.5", "ruby:3.3.5"]
26
+ name: test-latest
27
+ ruby-version: ruby:3.3.6
28
+ - test:
29
+ name: test-minus-one
30
+ ruby-version: ruby:3.2.6
31
+ - test:
32
+ name: test-minus-two
33
+ ruby-version: ruby:3.1.6
data/CHANGELOG.md CHANGED
@@ -22,6 +22,26 @@ The format is based on [Keep a Changelog][] and this project adheres to
22
22
 
23
23
  ### Security
24
24
 
25
+ ## [0.11.0][] - 2025-01-31
26
+
27
+ ### Added
28
+
29
+ * Support for Faraday middlewares ([#66][])
30
+ * Adding support for v2 subscription endpoint ([#53][])
31
+ * Support for Braze catalogs : edit_catalog_items ([#69][])
32
+ * Add support for export campaigns ([#52][])
33
+
34
+ ## [0.10.0][] - 2024-11-15
35
+
36
+ ### Added
37
+
38
+ * Partial support for Braze catalogs ([#60][])
39
+
40
+ ### Changed
41
+
42
+ * Use more generic CI job names ([#67][])
43
+ * Bump Ruby versions for CI ([#68][])
44
+
25
45
  ## [0.9.0][] - 2024-10-25
26
46
 
27
47
  ### Added
@@ -92,13 +112,15 @@ The format is based on [Keep a Changelog][] and this project adheres to
92
112
  * Modernize a few files and tinker with CI setup ([#26][])
93
113
  * Update authors and license ([#27][])
94
114
 
95
- [Unreleased]: https://github.com/jonallured/braze_ruby/compare/v0.9.0...HEAD
115
+ [Unreleased]: https://github.com/jonallured/braze_ruby/compare/v0.11.0...HEAD
96
116
 
97
117
  [0.5.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.5.0
98
118
  [0.6.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.6.0
99
119
  [0.7.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.7.0
100
120
  [0.8.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.8.0
101
121
  [0.9.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.9.0
122
+ [0.10.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.10.0
123
+ [0.11.0]: https://github.com/jonallured/braze_ruby/releases/tag/v0.11.0
102
124
 
103
125
  [#25]: https://github.com/jonallured/braze_ruby/pull/25
104
126
  [#26]: https://github.com/jonallured/braze_ruby/pull/26
@@ -119,8 +141,13 @@ The format is based on [Keep a Changelog][] and this project adheres to
119
141
  [#45]: https://github.com/jonallured/braze_ruby/pull/45
120
142
  [#46]: https://github.com/jonallured/braze_ruby/pull/46
121
143
  [#47]: https://github.com/jonallured/braze_ruby/pull/47
144
+ [#52]: https://github.com/jonallured/braze_ruby/pull/52
145
+ [#60]: https://github.com/jonallured/braze_ruby/pull/60
122
146
  [#61]: https://github.com/jonallured/braze_ruby/pull/61
123
147
  [#62]: https://github.com/jonallured/braze_ruby/pull/62
124
148
  [#63]: https://github.com/jonallured/braze_ruby/pull/63
125
149
  [#64]: https://github.com/jonallured/braze_ruby/pull/64
126
150
  [#65]: https://github.com/jonallured/braze_ruby/pull/65
151
+ [#67]: https://github.com/jonallured/braze_ruby/pull/67
152
+ [#68]: https://github.com/jonallured/braze_ruby/pull/68
153
+ [#69]: https://github.com/jonallured/braze_ruby/pull/69
data/README.md CHANGED
@@ -58,6 +58,13 @@ api.options
58
58
  # => {:key=>"global-options"}
59
59
  ```
60
60
 
61
+ #### Available `options` keys
62
+
63
+ - retry - Number of times to retry a failed request
64
+ - open_timeout - Number of seconds to wait for the connection to open
65
+ - timeout - Number of seconds to wait for the request to complete
66
+ - middlewares - Array of Faraday middleware to use
67
+
61
68
  ## Examples
62
69
 
63
70
  ### Initializing API
@@ -221,10 +228,13 @@ api.export_users(external_ids: [1])
221
228
  ```ruby
222
229
  api.export_users(segment_id: segment_id, callback_endpoint: 'https://example.com')
223
230
  ```
231
+
224
232
  ### Delete Users
225
233
 
226
234
  #####
235
+
227
236
  Delete Braze Users with an array of external_ids
237
+
228
238
  ```ruby
229
239
  api.delete_users([1, 2, 3])
230
240
  ```
@@ -232,11 +242,13 @@ api.delete_users([1, 2, 3])
232
242
  ### Subscription groups
233
243
 
234
244
  #### Get subscription group status for users by id
245
+
235
246
  ```ruby
236
247
  api.subscription_user_status(external_id: [1])
237
248
  ```
238
249
 
239
250
  #### Get users status for a specific subscription group
251
+
240
252
  ```ruby
241
253
  api.subscription_status_get(
242
254
  external_id: [1],
@@ -245,6 +257,7 @@ api.subscription_status_get(
245
257
  ```
246
258
 
247
259
  #### Set user status for a specific subscription group
260
+
248
261
  ```ruby
249
262
  api.subscription_status_set(
250
263
  external_id: [1],
@@ -253,6 +266,20 @@ api.subscription_status_set(
253
266
  )
254
267
  ```
255
268
 
269
+ #### Set user status for a specific subscription group using v2 route
270
+
271
+ ```ruby
272
+ api.v2_subscription_status_set(
273
+ subscription_groups: [
274
+ {
275
+ external_id: [1],
276
+ subscription_group_id: 'some-uuid',
277
+ subscription_state: 'subscribed|unsubscribed'
278
+ }
279
+ ]
280
+ )
281
+ ```
282
+
256
283
  ### User Alias
257
284
 
258
285
  #### Create an alias-only user
@@ -269,6 +296,7 @@ api.create_user_aliases(
269
296
  ```
270
297
 
271
298
  #### Identify an alias-only user
299
+
272
300
  ```ruby
273
301
  api.identify_users(
274
302
  aliases_to_identify: [{
@@ -284,7 +312,9 @@ api.identify_users(
284
312
  ### External ID Migration
285
313
 
286
314
  #### Rename users' external IDs with an array of external_id_renames
315
+
287
316
  Note: you can send up to 50 rename objects per request.
317
+
288
318
  ```ruby
289
319
  api.rename_external_ids(
290
320
  external_id_renames: [{
@@ -295,7 +325,9 @@ api.rename_external_ids(
295
325
  ```
296
326
 
297
327
  #### Remove users' old deprecated external IDs
328
+
298
329
  Note: you can send up to 50 external IDs per request.
330
+
299
331
  ```ruby
300
332
  api.remove_external_ids(external_ids: ['old_external_id'])
301
333
  ```
@@ -303,20 +335,152 @@ api.remove_external_ids(external_ids: ['old_external_id'])
303
335
  ### Email Sync
304
336
 
305
337
  #### Get List of or Query Email Unsubscribes
338
+
306
339
  ```ruby
307
340
  api.email_unsubscribes(email: ['jdoe@example.com'])
308
341
  ```
309
342
 
310
343
  #### Get List of or Query Hard Bounced Emails
344
+
311
345
  ```ruby
312
346
  api.email_hard_bounces(email: ['jdoe@example.com'])
313
347
  ```
314
348
 
315
349
  #### Remove Email Addresses From Spam List
350
+
316
351
  ```ruby
317
352
  api.remove_emails_from_spam(email: ['jdoe@example.com'])
318
353
  ```
319
354
 
355
+ ### Braze catalogs
356
+
357
+ As of november 2024, Braze catalogs still have some moving parts (beta) and only
358
+ partial support has been implemented
359
+
360
+ #### Create Catalogs
361
+
362
+ ```ruby
363
+ api.create_catalogs(
364
+ catalogs: [
365
+ {
366
+ name: "restaurants",
367
+ description: "My Restaurants",
368
+ fields: [
369
+ {name: "id", type: "string"},
370
+ {name: "Name", type: "string"},
371
+ {name: "Loyalty_Program", type: "boolean"},
372
+ {name: "Created_At", type: "time"}
373
+ ]
374
+ }
375
+ ]
376
+ )
377
+ ```
378
+
379
+ #### List Catalogs
380
+
381
+ ```ruby
382
+ api.list_catalogs
383
+ ```
384
+
385
+ #### Delete Catalog
386
+
387
+ ```ruby
388
+ api.delete_catalog("restaurants")
389
+ ```
390
+
391
+ #### Create Catalog Items
392
+
393
+ ```ruby
394
+ api.create_catalog_items(
395
+ "restaurants",
396
+ items: [
397
+ {
398
+ id: "restaurant1",
399
+ Name: "Restaurant1",
400
+ Loyalty_Program: true,
401
+ Created_At: "2022-11-01T09:03:19.967+00:00"
402
+ }
403
+ ]
404
+ )
405
+ ```
406
+
407
+ #### Delete Catalog Items
408
+
409
+ ```ruby
410
+ api.delete_catalog_items(
411
+ "restaurants",
412
+ items: [
413
+ {id: "restaurant1"}
414
+ ]
415
+ )
416
+ ```
417
+
418
+ #### Update Catalog Items
419
+
420
+ **EDIT : This functions hints at functioning like an upsert but actual API behaviour is more of the create if not existing. Further calls on items already existing will do nothing. Use edit_catalog_items for that, see below**
421
+ This functions like an upsert, the name of the associated permission api key
422
+ permission is `catalog.replace_items`
423
+
424
+ ```ruby
425
+ api.update_catalog_items(
426
+ "restaurants",
427
+ items: [
428
+ {
429
+ id: "restaurant1",
430
+ Name: "NewRestaurantName",
431
+ Loyalty_Program: false,
432
+ Created_At: "2022-11-01T09:03:19.967+00:00"
433
+ }
434
+ ]
435
+ )
436
+ ```
437
+
438
+ #### Edit Catalog Items
439
+
440
+ This functions actually _updates_ items. The update catalog items does not. This
441
+ is very confusing and Braze support answers late nov 2024 did not clarify this
442
+ point. TL;DR Actual behaviour is `update_catalog_items` functions more or less
443
+ like an create if not existing. `edit_catalog_items` functions like an update
444
+ without the creation bit if it item does not already exists. This will stay in
445
+ an in-between state while Braze continues working on its implementation.
446
+
447
+ `edit_catalog_items` only updates the property in the payload, it does not reset
448
+ value for the existing properties that were omitted.
449
+
450
+ When fixed we will be able to better name things
451
+
452
+ ```ruby
453
+ api.edit_catalog_items(
454
+ "restaurants",
455
+ items: [
456
+ {
457
+ id: "restaurant1",
458
+ Name: "NewRestaurantName",
459
+ }
460
+ ]
461
+ )
462
+ ```
463
+
464
+ ### Export Campaigns
465
+
466
+ #### Export Campaigns List
467
+
468
+ ```ruby
469
+ api.export_campaigns_list(page: 1)
470
+ ```
471
+
472
+ #### Export Campaign Details
473
+
474
+ ```ruby
475
+ api.export_campaign_details(campaign_id: 1)
476
+ ```
477
+
478
+ #### Export Campaign Analytics
479
+
480
+ ```ruby
481
+ api.export_campaign_analytics(campaign_id: 1, length: 100, ending_at: '2022-12-13T11:21:09-08:00' ))
482
+ ```
483
+
320
484
  ## Debugging
321
485
 
322
486
  The BRAZE_RUBY_DEBUG environment variable will trigger full printouts of the
@@ -6,9 +6,11 @@ require "braze_ruby/endpoints/send_messages"
6
6
  require "braze_ruby/endpoints/schedule_messages"
7
7
  require "braze_ruby/endpoints/email_status"
8
8
  require "braze_ruby/endpoints/email_sync"
9
+ require "braze_ruby/endpoints/export"
9
10
  require "braze_ruby/endpoints/delete_users"
10
11
  require "braze_ruby/endpoints/campaigns"
11
12
  require "braze_ruby/endpoints/canvas"
13
+ require "braze_ruby/endpoints/catalogs"
12
14
  require "braze_ruby/endpoints/subscription"
13
15
  require "braze_ruby/endpoints/rename_external_ids"
14
16
  require "braze_ruby/endpoints/remove_external_ids"
@@ -23,9 +25,11 @@ module BrazeRuby
23
25
  include BrazeRuby::Endpoints::ScheduleMessages
24
26
  include BrazeRuby::Endpoints::EmailStatus
25
27
  include BrazeRuby::Endpoints::EmailSync
28
+ include BrazeRuby::Endpoints::Export
26
29
  include BrazeRuby::Endpoints::DeleteUsers
27
30
  include BrazeRuby::Endpoints::Campaigns
28
31
  include BrazeRuby::Endpoints::Canvas
32
+ include BrazeRuby::Endpoints::Catalogs
29
33
  include BrazeRuby::Endpoints::Subscription
30
34
  include BrazeRuby::Endpoints::IdentifyUsers
31
35
  include BrazeRuby::Endpoints::CreateUserAliases
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module Endpoints
5
+ module Catalogs
6
+ # Catalog management
7
+ def create_catalogs(**payload)
8
+ BrazeRuby::REST::CreateCatalogs.new(api_key, braze_url, options, **payload).perform
9
+ end
10
+
11
+ def delete_catalog(catalog_name)
12
+ BrazeRuby::REST::DeleteCatalog.new(api_key, braze_url, options, catalog_name).perform
13
+ end
14
+
15
+ def list_catalogs
16
+ BrazeRuby::REST::ListCatalogs.new(api_key, braze_url, options).perform
17
+ end
18
+
19
+ # Catalog items
20
+ def create_catalog_items(catalog_name, **payload)
21
+ BrazeRuby::REST::CreateCatalogItems.new(api_key, braze_url, options, catalog_name, **payload).perform
22
+ end
23
+
24
+ def delete_catalog_items(catalog_name, **payload)
25
+ BrazeRuby::REST::DeleteCatalogItems.new(api_key, braze_url, options, catalog_name, **payload).perform
26
+ end
27
+
28
+ def update_catalog_items(catalog_name, **payload)
29
+ BrazeRuby::REST::UpdateCatalogItems.new(api_key, braze_url, options, catalog_name, **payload).perform
30
+ end
31
+
32
+ def edit_catalog_items(catalog_name, **payload)
33
+ BrazeRuby::REST::EditCatalogItems.new(api_key, braze_url, options, catalog_name, **payload).perform
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module Endpoints
5
+ module Export
6
+ def export_campaigns_list(**payload)
7
+ BrazeRuby::REST::ExportCampaignsList.new(api_key, braze_url, options).perform(**payload)
8
+ end
9
+
10
+ def export_campaign_details(**payload)
11
+ BrazeRuby::REST::ExportCampaignDetails.new(api_key, braze_url, options).perform(**payload)
12
+ end
13
+
14
+ def export_campaign_analytics(**payload)
15
+ BrazeRuby::REST::ExportCampaignAnalytics.new(api_key, braze_url, options).perform(**payload)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -7,6 +7,10 @@ module BrazeRuby
7
7
  BrazeRuby::REST::SubscriptionStatusSet.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
+ def v2_subscription_status_set(**payload)
11
+ BrazeRuby::REST::V2SubscriptionStatusSet.new(api_key, braze_url, options, **payload).perform
12
+ end
13
+
10
14
  def subscription_status_get(**payload)
11
15
  BrazeRuby::REST::SubscriptionStatusGet.new(api_key, braze_url, options, **payload).perform
12
16
  end
@@ -20,10 +20,28 @@ module BrazeRuby
20
20
  end
21
21
  end
22
22
 
23
+ def put(path, payload)
24
+ connection.post path do |request|
25
+ request.body = JSON.dump(payload)
26
+ end
27
+ end
28
+
29
+ def patch(path, payload)
30
+ connection.patch path do |request|
31
+ request.body = JSON.dump(payload)
32
+ end
33
+ end
34
+
23
35
  def get(path, query = {})
24
36
  connection.get path, query
25
37
  end
26
38
 
39
+ def delete(path, payload = nil)
40
+ connection.delete path do |request|
41
+ request.body = JSON.dump(payload) if payload
42
+ end
43
+ end
44
+
27
45
  def connection
28
46
  @connection ||= Faraday.new(url: @braze_url) do |connection|
29
47
  connection.headers["Content-Type"] = "application/json"
@@ -38,6 +56,10 @@ module BrazeRuby
38
56
 
39
57
  connection.options[:timeout] = @options[:timeout]
40
58
  connection.options[:open_timeout] = @options[:open_timeout]
59
+
60
+ @options.fetch(:middlewares, []).each do |middleware|
61
+ connection.use middleware
62
+ end
41
63
  end
42
64
  end
43
65
 
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class CreateCatalogItems < Base
6
+ attr_reader :params
7
+ attr_reader :catalog_name
8
+
9
+ def initialize(api_key, braze_url, options, catalog_name, **params)
10
+ @catalog_name = catalog_name
11
+ @params = params
12
+ super(api_key, braze_url, options)
13
+ end
14
+
15
+ def perform
16
+ http.post("/catalogs/#{@catalog_name}/items", @params)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class CreateCatalogs < Base
6
+ attr_reader :params
7
+
8
+ def initialize(api_key, braze_url, options, **params)
9
+ @params = params
10
+ super(api_key, braze_url, options)
11
+ end
12
+
13
+ def perform
14
+ http.post("/catalogs", @params)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class DeleteCatalog < Base
6
+ attr_reader :params
7
+
8
+ def initialize(api_key, braze_url, options, catalog_name)
9
+ @catalog_name = catalog_name
10
+ super(api_key, braze_url, options)
11
+ end
12
+
13
+ def perform
14
+ http.delete("/catalogs/#{@catalog_name}")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class DeleteCatalogItems < Base
6
+ attr_reader :params
7
+ attr_reader :catalog_name
8
+
9
+ def initialize(api_key, braze_url, options, catalog_name, **params)
10
+ @catalog_name = catalog_name
11
+ @params = params
12
+ super(api_key, braze_url, options)
13
+ end
14
+
15
+ def perform
16
+ http.delete("/catalogs/#{@catalog_name}/items", @params)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class EditCatalogItems < Base
6
+ attr_reader :params
7
+ attr_reader :catalog_name
8
+
9
+ def initialize(api_key, braze_url, options, catalog_name, **params)
10
+ @catalog_name = catalog_name
11
+ @params = params
12
+ super(api_key, braze_url, options)
13
+ end
14
+
15
+ def perform
16
+ http.patch("/catalogs/#{@catalog_name}/items", @params)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class ExportCampaignAnalytics < Base
6
+ def perform(options)
7
+ http.get("/campaigns/data_series", options)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class ExportCampaignDetails < Base
6
+ def perform(options)
7
+ http.get("/campaigns/details", options)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class ExportCampaignsList < Base
6
+ def perform(options)
7
+ http.get("/campaigns/list", options)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class ListCatalogs < Base
6
+ def perform
7
+ http.get("/catalogs")
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class UpdateCatalogItems < Base
6
+ attr_reader :params
7
+ attr_reader :catalog_name
8
+
9
+ def initialize(api_key, braze_url, options, catalog_name, **params)
10
+ @catalog_name = catalog_name
11
+ @params = params
12
+ super(api_key, braze_url, options)
13
+ end
14
+
15
+ def perform
16
+ http.put("/catalogs/#{@catalog_name}/items", @params)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class V2SubscriptionStatusSet < Base
6
+ attr_reader :params
7
+
8
+ def initialize(api_key, braze_url, options, **params)
9
+ @params = params
10
+ super(api_key, braze_url, options)
11
+ end
12
+
13
+ def perform
14
+ http.post("/v2/subscription/status/set", {
15
+ **params
16
+ })
17
+ end
18
+ end
19
+ end
20
+ end
@@ -8,6 +8,9 @@ require "braze_ruby/rest/scheduled_broadcasts"
8
8
  require "braze_ruby/rest/email_status"
9
9
  require "braze_ruby/rest/email_hard_bounces"
10
10
  require "braze_ruby/rest/email_unsubscribes"
11
+ require "braze_ruby/rest/export_campaign_analytics"
12
+ require "braze_ruby/rest/export_campaign_details"
13
+ require "braze_ruby/rest/export_campaigns_list"
11
14
  require "braze_ruby/rest/export_users"
12
15
  require "braze_ruby/rest/list_segments"
13
16
  require "braze_ruby/rest/delete_users"
@@ -24,3 +27,11 @@ require "braze_ruby/rest/create_user_aliases"
24
27
  require "braze_ruby/rest/rename_external_ids"
25
28
  require "braze_ruby/rest/remove_external_ids"
26
29
  require "braze_ruby/rest/remove_email_addresses_from_spam"
30
+ require "braze_ruby/rest/create_catalogs"
31
+ require "braze_ruby/rest/delete_catalog"
32
+ require "braze_ruby/rest/list_catalogs"
33
+ require "braze_ruby/rest/create_catalog_items"
34
+ require "braze_ruby/rest/delete_catalog_items"
35
+ require "braze_ruby/rest/update_catalog_items"
36
+ require "braze_ruby/rest/edit_catalog_items"
37
+ require "braze_ruby/rest/v2_subscription_status_set"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrazeRuby
4
- VERSION = "0.9.0"
4
+ VERSION = "0.11.0"
5
5
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braze_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nussbaum
8
8
  - Hugo Bastien
9
9
  - Justin Boltz
10
10
  - Jonathan Allured
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2024-10-25 00:00:00.000000000 Z
14
+ date: 2025-01-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -184,10 +184,12 @@ files:
184
184
  - lib/braze_ruby/endpoints.rb
185
185
  - lib/braze_ruby/endpoints/campaigns.rb
186
186
  - lib/braze_ruby/endpoints/canvas.rb
187
+ - lib/braze_ruby/endpoints/catalogs.rb
187
188
  - lib/braze_ruby/endpoints/create_user_aliases.rb
188
189
  - lib/braze_ruby/endpoints/delete_users.rb
189
190
  - lib/braze_ruby/endpoints/email_status.rb
190
191
  - lib/braze_ruby/endpoints/email_sync.rb
192
+ - lib/braze_ruby/endpoints/export.rb
191
193
  - lib/braze_ruby/endpoints/identify_users.rb
192
194
  - lib/braze_ruby/endpoints/remove_email_addresses_from_spam.rb
193
195
  - lib/braze_ruby/endpoints/remove_external_ids.rb
@@ -200,14 +202,23 @@ files:
200
202
  - lib/braze_ruby/rest.rb
201
203
  - lib/braze_ruby/rest/base.rb
202
204
  - lib/braze_ruby/rest/canvas_details.rb
205
+ - lib/braze_ruby/rest/create_catalog_items.rb
206
+ - lib/braze_ruby/rest/create_catalogs.rb
203
207
  - lib/braze_ruby/rest/create_user_aliases.rb
208
+ - lib/braze_ruby/rest/delete_catalog.rb
209
+ - lib/braze_ruby/rest/delete_catalog_items.rb
204
210
  - lib/braze_ruby/rest/delete_trigger_campaign_schedule.rb
205
211
  - lib/braze_ruby/rest/delete_users.rb
212
+ - lib/braze_ruby/rest/edit_catalog_items.rb
206
213
  - lib/braze_ruby/rest/email_hard_bounces.rb
207
214
  - lib/braze_ruby/rest/email_status.rb
208
215
  - lib/braze_ruby/rest/email_unsubscribes.rb
216
+ - lib/braze_ruby/rest/export_campaign_analytics.rb
217
+ - lib/braze_ruby/rest/export_campaign_details.rb
218
+ - lib/braze_ruby/rest/export_campaigns_list.rb
209
219
  - lib/braze_ruby/rest/export_users.rb
210
220
  - lib/braze_ruby/rest/identify_users.rb
221
+ - lib/braze_ruby/rest/list_catalogs.rb
211
222
  - lib/braze_ruby/rest/list_segments.rb
212
223
  - lib/braze_ruby/rest/remove_email_addresses_from_spam.rb
213
224
  - lib/braze_ruby/rest/remove_external_ids.rb
@@ -222,6 +233,8 @@ files:
222
233
  - lib/braze_ruby/rest/trigger_campaign_schedule.rb
223
234
  - lib/braze_ruby/rest/trigger_campaign_send.rb
224
235
  - lib/braze_ruby/rest/trigger_canvas_send.rb
236
+ - lib/braze_ruby/rest/update_catalog_items.rb
237
+ - lib/braze_ruby/rest/v2_subscription_status_set.rb
225
238
  - lib/braze_ruby/version.rb
226
239
  homepage: https://github.com/jonallured/braze_ruby
227
240
  licenses:
@@ -229,7 +242,7 @@ licenses:
229
242
  metadata:
230
243
  homepage_uri: https://github.com/jonallured/braze_ruby
231
244
  source_code_uri: https://github.com/jonallured/braze_ruby
232
- post_install_message:
245
+ post_install_message:
233
246
  rdoc_options: []
234
247
  require_paths:
235
248
  - lib
@@ -244,8 +257,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
257
  - !ruby/object:Gem::Version
245
258
  version: '0'
246
259
  requirements: []
247
- rubygems_version: 3.3.5
248
- signing_key:
260
+ rubygems_version: 3.4.20
261
+ signing_key:
249
262
  specification_version: 4
250
263
  summary: A wrapper gem for the Braze REST API.
251
264
  test_files: []