braze_ruby 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +10 -10
- data/README.md +24 -0
- data/Rakefile +2 -0
- data/braze_ruby.gemspec +8 -8
- data/lib/braze_ruby.rb +2 -0
- data/lib/braze_ruby/api.rb +4 -0
- data/lib/braze_ruby/deprecated.rb +2 -0
- data/lib/braze_ruby/endpoints.rb +2 -0
- data/lib/braze_ruby/endpoints/campaigns.rb +2 -0
- data/lib/braze_ruby/endpoints/canvas.rb +6 -0
- data/lib/braze_ruby/endpoints/delete_users.rb +2 -0
- data/lib/braze_ruby/endpoints/email_status.rb +2 -0
- data/lib/braze_ruby/endpoints/email_sync.rb +2 -0
- data/lib/braze_ruby/endpoints/schedule_messages.rb +2 -0
- data/lib/braze_ruby/endpoints/send_messages.rb +2 -0
- data/lib/braze_ruby/endpoints/subscription.rb +20 -0
- data/lib/braze_ruby/endpoints/track_users.rb +2 -0
- data/lib/braze_ruby/http.rb +2 -0
- data/lib/braze_ruby/rest.rb +6 -0
- data/lib/braze_ruby/rest/base.rb +2 -0
- data/lib/braze_ruby/rest/canvas_details.rb +22 -0
- data/lib/braze_ruby/rest/delete_users.rb +2 -0
- data/lib/braze_ruby/rest/email_hard_bounces.rb +2 -0
- data/lib/braze_ruby/rest/email_status.rb +2 -0
- data/lib/braze_ruby/rest/email_unsubscribes.rb +2 -0
- data/lib/braze_ruby/rest/export_users.rb +2 -0
- data/lib/braze_ruby/rest/list_segments.rb +2 -0
- data/lib/braze_ruby/rest/schedule_messages.rb +2 -0
- data/lib/braze_ruby/rest/send_messages.rb +2 -0
- data/lib/braze_ruby/rest/subscription_status_get.rb +22 -0
- data/lib/braze_ruby/rest/subscription_status_set.rb +22 -0
- data/lib/braze_ruby/rest/subscription_user_status.rb +22 -0
- data/lib/braze_ruby/rest/track_users.rb +2 -0
- data/lib/braze_ruby/rest/trigger_campaign_send.rb +2 -0
- data/lib/braze_ruby/rest/trigger_canvas_send.rb +2 -0
- data/lib/braze_ruby/version.rb +3 -1
- data/spec/braze_ruby/api_spec.rb +2 -0
- data/spec/braze_ruby/endpoints/delete_users_spec.rb +2 -0
- data/spec/braze_ruby/endpoints/track_users_spec.rb +2 -0
- data/spec/braze_ruby/rest/delete_users_spec.rb +2 -0
- data/spec/braze_ruby/rest/email_status_spec.rb +2 -0
- data/spec/braze_ruby/rest/export_users_spec.rb +2 -0
- data/spec/braze_ruby/rest/schedule_messages_spec.rb +2 -0
- data/spec/braze_ruby/rest/send_messages_spec.rb +2 -0
- data/spec/braze_ruby/rest/track_users_spec.rb +2 -0
- data/spec/factories.rb +2 -0
- data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +67 -0
- data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +69 -0
- data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +66 -0
- data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +135 -0
- data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_checking_subscribed_and_unsubscribed_user_status/returns_only_users_that_were_once_subscribed.yml +205 -0
- data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +193 -0
- data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +207 -0
- data/spec/integrations/campaigns_spec.rb +2 -0
- data/spec/integrations/canvas_spec.rb +11 -0
- data/spec/integrations/delete_users_spec.rb +2 -0
- data/spec/integrations/email_status_spec.rb +2 -0
- data/spec/integrations/email_sync_spec.rb +2 -0
- data/spec/integrations/export_users_spec.rb +2 -0
- data/spec/integrations/list_segments_spec.rb +2 -0
- data/spec/integrations/schedule_messages_spec.rb +2 -0
- data/spec/integrations/send_messages_spec.rb +2 -0
- data/spec/integrations/subscription_spec.rb +149 -0
- data/spec/integrations/track_users_spec.rb +2 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/factory_bot.rb +2 -0
- data/spec/support/integrations.rb +2 -0
- data/spec/support/vcr.rb +2 -0
- metadata +56 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d13af3abbb4e98372a950bf22a32729721f50e061b5c4259a0ca8441ffc1b718
|
4
|
+
data.tar.gz: 0ba7370dd8c8bf783643722ff0531a62128deb2361c4b7ce2cd0124659073c26
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 12ce012904c603fa5c7d202f46bbbc3b5b0df057a07edb7f04ab18a820154eebba5628f23a3f43ace34b47a03a99415de1911429c6d9a3175b061522ca29025e
|
7
|
+
data.tar.gz: acb859868636273fa6a8b07370e31805cc17760e8f40b392f0141a3ce963b1e0c902209297d7dea2750d69bed6fa86ab55629ae7d50f2a8997a6b31ffe276207
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
braze_ruby (0.
|
5
|
-
faraday
|
4
|
+
braze_ruby (0.3.1)
|
5
|
+
faraday (~> 0.17.1)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
@@ -23,7 +23,7 @@ GEM
|
|
23
23
|
dotenv (2.7.5)
|
24
24
|
factory_bot (5.1.0)
|
25
25
|
activesupport (>= 4.2.0)
|
26
|
-
faraday (0.
|
26
|
+
faraday (0.17.1)
|
27
27
|
multipart-post (>= 1.2, < 3)
|
28
28
|
hashdiff (1.0.0)
|
29
29
|
i18n (1.6.0)
|
@@ -66,13 +66,13 @@ PLATFORMS
|
|
66
66
|
DEPENDENCIES
|
67
67
|
braze_ruby!
|
68
68
|
bundler (>= 1.3)
|
69
|
-
dotenv
|
70
|
-
factory_bot
|
71
|
-
pry
|
72
|
-
rake
|
73
|
-
rspec
|
74
|
-
vcr
|
75
|
-
webmock
|
69
|
+
dotenv (~> 2.7.5)
|
70
|
+
factory_bot (~> 5.1.0)
|
71
|
+
pry (~> 0.12.2)
|
72
|
+
rake (~> 12.3.3)
|
73
|
+
rspec (~> 3.8.0)
|
74
|
+
vcr (~> 5.0.0)
|
75
|
+
webmock (~> 3.7.5)
|
76
76
|
|
77
77
|
BUNDLED WITH
|
78
78
|
2.0.2
|
data/README.md
CHANGED
@@ -163,6 +163,30 @@ Delete Braze Users with an array of external_ids
|
|
163
163
|
api.delete_users([1, 2, 3])
|
164
164
|
```
|
165
165
|
|
166
|
+
### Subscription groups
|
167
|
+
|
168
|
+
#### Get subscription group status for users by id
|
169
|
+
```ruby
|
170
|
+
api.subscription_user_status(external_id: [1])
|
171
|
+
```
|
172
|
+
|
173
|
+
#### Get users status for a specific subscription group
|
174
|
+
```ruby
|
175
|
+
api.subscription_status_get(
|
176
|
+
external_id: [1],
|
177
|
+
subscription_group_id: 'some-uuid'
|
178
|
+
)
|
179
|
+
```
|
180
|
+
|
181
|
+
#### Set user status for a specific subscription group
|
182
|
+
```ruby
|
183
|
+
api.subscription_status_set(
|
184
|
+
external_id: [1],
|
185
|
+
subscription_group_id: 'some-uuid',
|
186
|
+
subscription_state: 'subscribed|unsubscribed'
|
187
|
+
)
|
188
|
+
```
|
189
|
+
|
166
190
|
## Debugging
|
167
191
|
|
168
192
|
The BRAZE_RUBY_DEBUG environment variable will trigger full printouts of the Faraday gem's HTTP requests and responses.
|
data/Rakefile
CHANGED
data/braze_ruby.gemspec
CHANGED
@@ -25,14 +25,14 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
spec.required_ruby_version = '>= 2.0'
|
27
27
|
|
28
|
-
spec.add_dependency 'faraday'
|
28
|
+
spec.add_dependency 'faraday', '~> 0.17.1'
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler', '>= 1.3'
|
31
|
-
spec.add_development_dependency 'rake'
|
32
|
-
spec.add_development_dependency 'rspec'
|
33
|
-
spec.add_development_dependency 'dotenv'
|
34
|
-
spec.add_development_dependency 'vcr'
|
35
|
-
spec.add_development_dependency 'webmock'
|
36
|
-
spec.add_development_dependency 'pry'
|
37
|
-
spec.add_development_dependency 'factory_bot'
|
31
|
+
spec.add_development_dependency 'rake', '~> 12.3.3'
|
32
|
+
spec.add_development_dependency 'rspec', '~> 3.8.0'
|
33
|
+
spec.add_development_dependency 'dotenv', '~> 2.7.5'
|
34
|
+
spec.add_development_dependency 'vcr', '~> 5.0.0'
|
35
|
+
spec.add_development_dependency 'webmock', '~> 3.7.5'
|
36
|
+
spec.add_development_dependency 'pry', '~> 0.12.2'
|
37
|
+
spec.add_development_dependency 'factory_bot', '~> 5.1.0'
|
38
38
|
end
|
data/lib/braze_ruby.rb
CHANGED
data/lib/braze_ruby/api.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'braze_ruby/deprecated'
|
2
4
|
require 'braze_ruby/endpoints/track_users'
|
3
5
|
require 'braze_ruby/endpoints/send_messages'
|
@@ -7,6 +9,7 @@ require 'braze_ruby/endpoints/email_sync'
|
|
7
9
|
require 'braze_ruby/endpoints/delete_users'
|
8
10
|
require 'braze_ruby/endpoints/campaigns'
|
9
11
|
require 'braze_ruby/endpoints/canvas'
|
12
|
+
require 'braze_ruby/endpoints/subscription'
|
10
13
|
|
11
14
|
module BrazeRuby
|
12
15
|
class API
|
@@ -20,6 +23,7 @@ module BrazeRuby
|
|
20
23
|
include BrazeRuby::Endpoints::DeleteUsers
|
21
24
|
include BrazeRuby::Endpoints::Campaigns
|
22
25
|
include BrazeRuby::Endpoints::Canvas
|
26
|
+
include BrazeRuby::Endpoints::Subscription
|
23
27
|
|
24
28
|
def export_users(**payload)
|
25
29
|
BrazeRuby::REST::ExportUsers.new(braze_url).perform(api_key, payload)
|
data/lib/braze_ruby/endpoints.rb
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module BrazeRuby
|
2
4
|
module Endpoints
|
3
5
|
module Canvas
|
4
6
|
def trigger_canvas_send(**payload)
|
5
7
|
BrazeRuby::REST::TriggerCanvasSend.new(api_key, braze_url, payload).perform
|
6
8
|
end
|
9
|
+
|
10
|
+
def canvas_details(**payload)
|
11
|
+
BrazeRuby::REST::CanvasDetails.new(api_key, braze_url, payload).perform
|
12
|
+
end
|
7
13
|
end
|
8
14
|
end
|
9
15
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module Endpoints
|
5
|
+
module Subscription
|
6
|
+
def subscription_status_set(**payload)
|
7
|
+
BrazeRuby::REST::SubscriptionStatusSet.new(api_key, braze_url, payload).perform
|
8
|
+
end
|
9
|
+
|
10
|
+
def subscription_status_get(**payload)
|
11
|
+
BrazeRuby::REST::SubscriptionStatusGet.new(api_key, braze_url, payload).perform
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def subscription_user_status(**payload)
|
16
|
+
BrazeRuby::REST::SubscriptionUserStatus.new(api_key, braze_url, payload).perform
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/braze_ruby/http.rb
CHANGED
data/lib/braze_ruby/rest.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'braze_ruby/rest/base'
|
2
4
|
require 'braze_ruby/rest/track_users'
|
3
5
|
require 'braze_ruby/rest/send_messages'
|
@@ -10,3 +12,7 @@ require 'braze_ruby/rest/list_segments'
|
|
10
12
|
require 'braze_ruby/rest/delete_users'
|
11
13
|
require 'braze_ruby/rest/trigger_campaign_send'
|
12
14
|
require 'braze_ruby/rest/trigger_canvas_send'
|
15
|
+
require 'braze_ruby/rest/canvas_details'
|
16
|
+
require 'braze_ruby/rest/subscription_status_set'
|
17
|
+
require 'braze_ruby/rest/subscription_status_get'
|
18
|
+
require 'braze_ruby/rest/subscription_user_status'
|
data/lib/braze_ruby/rest/base.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module REST
|
5
|
+
class CanvasDetails < Base
|
6
|
+
attr_reader :api_key, :params
|
7
|
+
|
8
|
+
def initialize(api_key, braze_url, **params)
|
9
|
+
@api_key = api_key
|
10
|
+
@params = params
|
11
|
+
super braze_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def perform
|
15
|
+
http.get('/canvas/details', {
|
16
|
+
'api_key': api_key,
|
17
|
+
**@params
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module REST
|
5
|
+
class SubscriptionStatusGet < Base
|
6
|
+
attr_reader :api_key, :params
|
7
|
+
|
8
|
+
def initialize(api_key, braze_url, **params)
|
9
|
+
@api_key = api_key
|
10
|
+
@params = params
|
11
|
+
super braze_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def perform
|
15
|
+
http.get('/subscription/status/get', {
|
16
|
+
'api_key': api_key,
|
17
|
+
**params
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module REST
|
5
|
+
class SubscriptionStatusSet < Base
|
6
|
+
attr_reader :api_key, :params
|
7
|
+
|
8
|
+
def initialize(api_key, braze_url, **params)
|
9
|
+
@api_key = api_key
|
10
|
+
@params = params
|
11
|
+
super braze_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def perform
|
15
|
+
http.post('/subscription/status/set', {
|
16
|
+
'api_key': api_key,
|
17
|
+
**params
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module REST
|
5
|
+
class SubscriptionUserStatus < Base
|
6
|
+
attr_reader :api_key, :params
|
7
|
+
|
8
|
+
def initialize(api_key, braze_url, **params)
|
9
|
+
@api_key = api_key
|
10
|
+
@params = params
|
11
|
+
super braze_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def perform
|
15
|
+
http.get('/subscription/user/status', {
|
16
|
+
'api_key': api_key,
|
17
|
+
**params
|
18
|
+
})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|