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 +4 -4
- data/.circleci/config.yml +10 -3
- data/CHANGELOG.md +28 -1
- data/README.md +164 -0
- data/lib/braze_ruby/api.rb +4 -0
- data/lib/braze_ruby/endpoints/catalogs.rb +37 -0
- data/lib/braze_ruby/endpoints/export.rb +19 -0
- data/lib/braze_ruby/endpoints/subscription.rb +4 -0
- data/lib/braze_ruby/http.rb +22 -0
- data/lib/braze_ruby/rest/create_catalog_items.rb +20 -0
- data/lib/braze_ruby/rest/create_catalogs.rb +18 -0
- data/lib/braze_ruby/rest/delete_catalog.rb +18 -0
- data/lib/braze_ruby/rest/delete_catalog_items.rb +20 -0
- data/lib/braze_ruby/rest/edit_catalog_items.rb +20 -0
- data/lib/braze_ruby/rest/export_campaign_analytics.rb +11 -0
- data/lib/braze_ruby/rest/export_campaign_details.rb +11 -0
- data/lib/braze_ruby/rest/export_campaigns_list.rb +11 -0
- data/lib/braze_ruby/rest/list_catalogs.rb +11 -0
- data/lib/braze_ruby/rest/update_catalog_items.rb +20 -0
- data/lib/braze_ruby/rest/v2_subscription_status_set.rb +20 -0
- data/lib/braze_ruby/rest.rb +11 -0
- data/lib/braze_ruby/version.rb +1 -1
- metadata +19 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b76039a0f4cb84b70161c37d758241dd0f0fa3d4114bd407102e84ca04731d7
|
4
|
+
data.tar.gz: 8ff20890e2800b240a19798ca094d1aad8d02801b93d15b82a1831385a1cfdfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
25
|
-
|
26
|
-
|
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.
|
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
|
data/lib/braze_ruby/api.rb
CHANGED
@@ -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
|
data/lib/braze_ruby/http.rb
CHANGED
@@ -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,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
|
data/lib/braze_ruby/rest.rb
CHANGED
@@ -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"
|
data/lib/braze_ruby/version.rb
CHANGED
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.
|
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:
|
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.
|
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: []
|