braze_ruby 0.2.0 → 0.2.1

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: d764aef365cc62df6c6b78c7df64e302e5e662b23d602acaec830f98159e3605
4
- data.tar.gz: b5b2affefe873659ef00624c004309b095454479e2324f9923f613e06366212b
3
+ metadata.gz: e5649f519796cde810f2c2e2028c5a14fbcdfc7c6d93cf33043068fb4195b481
4
+ data.tar.gz: b81d2eed4f84937c0bd4721318c2474f36e987d97418961fb407744dcee068fb
5
5
  SHA512:
6
- metadata.gz: 818b213e16dcd5665c9b0029e0d683a9b0631ff49732362fc904ea176e4ff4aa639ebec8b1467e5cf40b313d57b9377fca1074a2f2d47dedc894a93377ae6630
7
- data.tar.gz: 149b620b3a6e27b39e4ab34a6f7826e866015a04ba170bdc38e0d66407a0c6518503108edfb60100e4f9a0642591cc1d170fdb609ff678e53f328e1c7a0cbd56
6
+ metadata.gz: 766e1d5e83222af37ba40d6e1333ea6e350b4e9ae327e943a31dfc60772253368a67fe8048b5ef72681759ce8e1ab13a7bdeb6c77fe92c82f167094881c22830
7
+ data.tar.gz: a1011b8b5f84bba75a5eae4bb1535d0582788ea10ef838b6821912a05dad3f3abc06bc4033a93004c3554b05ca949d74f40916caa4115f2dc9087cf066f418bf
@@ -1,62 +1,64 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- braze_ruby (0.2.0)
4
+ braze_ruby (0.2.1)
5
5
  faraday
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (5.2.3)
10
+ activesupport (6.0.0)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  i18n (>= 0.7, < 2)
13
13
  minitest (~> 5.1)
14
14
  tzinfo (~> 1.1)
15
- addressable (2.6.0)
16
- public_suffix (>= 2.0.2, < 4.0)
15
+ zeitwerk (~> 2.1, >= 2.1.8)
16
+ addressable (2.7.0)
17
+ public_suffix (>= 2.0.2, < 5.0)
17
18
  coderay (1.1.2)
18
19
  concurrent-ruby (1.1.5)
19
20
  crack (0.4.3)
20
21
  safe_yaml (~> 1.0.0)
21
22
  diff-lcs (1.3)
22
- dotenv (2.7.2)
23
+ dotenv (2.7.5)
23
24
  factory_bot (5.0.2)
24
25
  activesupport (>= 4.2.0)
25
26
  faraday (0.15.4)
26
27
  multipart-post (>= 1.2, < 3)
27
- hashdiff (0.3.8)
28
+ hashdiff (1.0.0)
28
29
  i18n (1.6.0)
29
30
  concurrent-ruby (~> 1.0)
30
31
  method_source (0.9.2)
31
32
  minitest (5.11.3)
32
- multipart-post (2.0.0)
33
+ multipart-post (2.1.1)
33
34
  pry (0.12.2)
34
35
  coderay (~> 1.1.0)
35
36
  method_source (~> 0.9.0)
36
- public_suffix (3.0.3)
37
- rake (12.3.2)
37
+ public_suffix (4.0.1)
38
+ rake (12.3.3)
38
39
  rspec (3.8.0)
39
40
  rspec-core (~> 3.8.0)
40
41
  rspec-expectations (~> 3.8.0)
41
42
  rspec-mocks (~> 3.8.0)
42
- rspec-core (3.8.0)
43
+ rspec-core (3.8.2)
43
44
  rspec-support (~> 3.8.0)
44
- rspec-expectations (3.8.2)
45
+ rspec-expectations (3.8.4)
45
46
  diff-lcs (>= 1.2.0, < 2.0)
46
47
  rspec-support (~> 3.8.0)
47
- rspec-mocks (3.8.0)
48
+ rspec-mocks (3.8.1)
48
49
  diff-lcs (>= 1.2.0, < 2.0)
49
50
  rspec-support (~> 3.8.0)
50
- rspec-support (3.8.0)
51
+ rspec-support (3.8.2)
51
52
  safe_yaml (1.0.5)
52
53
  thread_safe (0.3.6)
53
54
  tzinfo (1.2.5)
54
55
  thread_safe (~> 0.1)
55
- vcr (4.0.0)
56
- webmock (3.5.1)
56
+ vcr (5.0.0)
57
+ webmock (3.7.1)
57
58
  addressable (>= 2.3.6)
58
59
  crack (>= 0.3.2)
59
- hashdiff
60
+ hashdiff (>= 0.4.0, < 2.0.0)
61
+ zeitwerk (2.1.9)
60
62
 
61
63
  PLATFORMS
62
64
  ruby
@@ -73,4 +75,4 @@ DEPENDENCIES
73
75
  webmock
74
76
 
75
77
  BUNDLED WITH
76
- 2.0.1
78
+ 2.0.2
data/README.md CHANGED
@@ -112,6 +112,15 @@ api.send_messages(messages: messages, segment_id: '<segment-id>')
112
112
  api.schedule_messages(send_at: 1.hour.since, messages: messages, external_user_ids: [123, 456])
113
113
  ```
114
114
 
115
+ ### Send Campaigns
116
+
117
+ ```ruby
118
+ api.trigger_campaign_send(
119
+ campaign_id: 'campaign-id',
120
+ recipients: [external_user_id: 123, trigger_properties: {first_name: 'John'}]
121
+ )
122
+ ```
123
+
115
124
  ### Changing Email Subscription
116
125
 
117
126
  ```ruby
@@ -5,6 +5,7 @@ require 'braze_ruby/endpoints/schedule_messages'
5
5
  require 'braze_ruby/endpoints/email_status'
6
6
  require 'braze_ruby/endpoints/email_sync'
7
7
  require 'braze_ruby/endpoints/delete_users'
8
+ require 'braze_ruby/endpoints/campaigns'
8
9
 
9
10
  module BrazeRuby
10
11
  class API
@@ -16,6 +17,7 @@ module BrazeRuby
16
17
  include BrazeRuby::Endpoints::EmailStatus
17
18
  include BrazeRuby::Endpoints::EmailSync
18
19
  include BrazeRuby::Endpoints::DeleteUsers
20
+ include BrazeRuby::Endpoints::Campaigns
19
21
 
20
22
  def export_users(**payload)
21
23
  BrazeRuby::REST::ExportUsers.new(braze_url).perform(api_key, payload)
@@ -0,0 +1,9 @@
1
+ module BrazeRuby
2
+ module Endpoints
3
+ module Campaigns
4
+ def trigger_campaign_send(**payload)
5
+ BrazeRuby::REST::TriggerCampaignSend.new(api_key, braze_url, payload).perform
6
+ end
7
+ end
8
+ end
9
+ end
@@ -8,3 +8,4 @@ require 'braze_ruby/rest/email_unsubscribes'
8
8
  require 'braze_ruby/rest/export_users'
9
9
  require 'braze_ruby/rest/list_segments'
10
10
  require 'braze_ruby/rest/delete_users'
11
+ require 'braze_ruby/rest/trigger_campaign_send'
@@ -0,0 +1,20 @@
1
+ module BrazeRuby
2
+ module REST
3
+ class TriggerCampaignSend < Base
4
+ attr_reader :api_key, :params
5
+
6
+ def initialize(api_key, braze_url, **params)
7
+ @api_key = api_key
8
+ @params = params
9
+ super braze_url
10
+ end
11
+
12
+ def perform
13
+ http.post('/campaigns/trigger/send', {
14
+ 'api_key': api_key,
15
+ **@params
16
+ })
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module BrazeRuby
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.2.1'.freeze
3
3
  end
@@ -0,0 +1,69 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<BRAZE_REST_URL>/campaigns/trigger/send"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"api_key":"<BRAZE_REST_API_KEY>","campaign_id":"69e9b681-779c-4b4c-b6b8-cd74b17d21d2","recipients":[{"external_user_id":132404,"trigger_properties":{"first_name":"John"}}]}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Braze Ruby gem v0.2.0
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ response:
19
+ status:
20
+ code: 201
21
+ message: Created
22
+ headers:
23
+ Cache-Control:
24
+ - max-age=0, private, must-revalidate
25
+ Content-Type:
26
+ - application/json
27
+ Etag:
28
+ - W/"838a7c62adda8d131d694ae13ba2c5b7"
29
+ Server:
30
+ - nginx
31
+ Strict-Transport-Security:
32
+ - max-age=0; includeSubDomains
33
+ - max-age=31536000; includeSubDomains
34
+ X-Ratelimit-Limit:
35
+ - '250000'
36
+ X-Ratelimit-Remaining:
37
+ - '249998'
38
+ X-Ratelimit-Reset:
39
+ - '1567425600'
40
+ X-Request-Id:
41
+ - e6f14e03-5226-45f3-9a9f-901a0139b071
42
+ X-Runtime:
43
+ - '0.019114'
44
+ Content-Length:
45
+ - '46'
46
+ Accept-Ranges:
47
+ - bytes
48
+ Date:
49
+ - Mon, 02 Sep 2019 11:41:42 GMT
50
+ Via:
51
+ - 1.1 varnish
52
+ Connection:
53
+ - keep-alive
54
+ X-Served-By:
55
+ - cache-hhn4029-HHN
56
+ X-Cache:
57
+ - MISS
58
+ X-Cache-Hits:
59
+ - '0'
60
+ X-Timer:
61
+ - S1567424502.370259,VS0,VE27
62
+ Vary:
63
+ - Origin,Accept-Encoding
64
+ body:
65
+ encoding: ASCII-8BIT
66
+ string: '{"message":"success"}'
67
+ http_version:
68
+ recorded_at: Mon, 02 Sep 2019 11:41:42 GMT
69
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'campaigns' do
4
+ describe 'trigger_send' do
5
+ it 'sends an email', vcr: true do
6
+ response = api.trigger_campaign_send(
7
+ campaign_id: '69e9b681-779c-4b4c-b6b8-cd74b17d21d2',
8
+ recipients: [
9
+ external_user_id: 132404,
10
+ trigger_properties: {first_name: 'John'}
11
+ ]
12
+ )
13
+ end
14
+ end
15
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braze_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nussbaum
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-04-16 00:00:00.000000000 Z
13
+ date: 2019-09-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
@@ -159,6 +159,7 @@ files:
159
159
  - lib/braze_ruby/api.rb
160
160
  - lib/braze_ruby/deprecated.rb
161
161
  - lib/braze_ruby/endpoints.rb
162
+ - lib/braze_ruby/endpoints/campaigns.rb
162
163
  - lib/braze_ruby/endpoints/delete_users.rb
163
164
  - lib/braze_ruby/endpoints/email_status.rb
164
165
  - lib/braze_ruby/endpoints/email_sync.rb
@@ -177,6 +178,7 @@ files:
177
178
  - lib/braze_ruby/rest/schedule_messages.rb
178
179
  - lib/braze_ruby/rest/send_messages.rb
179
180
  - lib/braze_ruby/rest/track_users.rb
181
+ - lib/braze_ruby/rest/trigger_campaign_send.rb
180
182
  - lib/braze_ruby/version.rb
181
183
  - spec/braze_ruby/api_spec.rb
182
184
  - spec/braze_ruby/endpoints/delete_users_spec.rb
@@ -188,6 +190,7 @@ files:
188
190
  - spec/braze_ruby/rest/send_messages_spec.rb
189
191
  - spec/braze_ruby/rest/track_users_spec.rb
190
192
  - spec/factories.rb
193
+ - spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
191
194
  - spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
192
195
  - spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
193
196
  - spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
@@ -211,6 +214,7 @@ files:
211
214
  - spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml
212
215
  - spec/fixtures/responses/track_users/with_success/responds_with_created.yml
213
216
  - spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
217
+ - spec/integrations/campaigns_spec.rb
214
218
  - spec/integrations/delete_users_spec.rb
215
219
  - spec/integrations/email_status_spec.rb
216
220
  - spec/integrations/email_sync_spec.rb
@@ -244,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
248
  - !ruby/object:Gem::Version
245
249
  version: '0'
246
250
  requirements: []
247
- rubygems_version: 3.0.3
251
+ rubygems_version: 3.0.6
248
252
  signing_key:
249
253
  specification_version: 4
250
254
  summary: A wrapper for the Braze REST API forked from the appboy gem, track users/events/purchases,
@@ -260,6 +264,7 @@ test_files:
260
264
  - spec/braze_ruby/rest/send_messages_spec.rb
261
265
  - spec/braze_ruby/rest/track_users_spec.rb
262
266
  - spec/factories.rb
267
+ - spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
263
268
  - spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
264
269
  - spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
265
270
  - spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
@@ -283,6 +288,7 @@ test_files:
283
288
  - spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml
284
289
  - spec/fixtures/responses/track_users/with_success/responds_with_created.yml
285
290
  - spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
291
+ - spec/integrations/campaigns_spec.rb
286
292
  - spec/integrations/delete_users_spec.rb
287
293
  - spec/integrations/email_status_spec.rb
288
294
  - spec/integrations/email_sync_spec.rb