braze_ruby 0.4.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +26 -0
  3. data/.github/workflows/gem_credentials +2 -0
  4. data/.github/workflows/release.yml +20 -0
  5. data/.gitignore +12 -19
  6. data/.standard.yml +1 -0
  7. data/Gemfile +1 -2
  8. data/LICENSE.txt +17 -18
  9. data/README.md +63 -6
  10. data/Rakefile +2 -1
  11. data/bin/release +16 -0
  12. data/braze_ruby.gemspec +28 -31
  13. data/lib/braze_ruby/api.rb +17 -15
  14. data/lib/braze_ruby/configuration.rb +13 -0
  15. data/lib/braze_ruby/deprecated.rb +4 -5
  16. data/lib/braze_ruby/endpoints/campaigns.rb +8 -0
  17. data/lib/braze_ruby/endpoints/remove_email_addresses_from_spam.rb +19 -0
  18. data/lib/braze_ruby/endpoints/remove_external_ids.rb +2 -2
  19. data/lib/braze_ruby/endpoints/rename_external_ids.rb +2 -2
  20. data/lib/braze_ruby/endpoints/schedule_messages.rb +3 -5
  21. data/lib/braze_ruby/endpoints/subscription.rb +0 -1
  22. data/lib/braze_ruby/endpoints.rb +11 -10
  23. data/lib/braze_ruby/http.rb +12 -9
  24. data/lib/braze_ruby/rest/base.rb +3 -3
  25. data/lib/braze_ruby/rest/canvas_details.rb +1 -1
  26. data/lib/braze_ruby/rest/create_user_aliases.rb +2 -2
  27. data/lib/braze_ruby/rest/delete_trigger_campaign_schedule.rb +15 -0
  28. data/lib/braze_ruby/rest/delete_users.rb +2 -2
  29. data/lib/braze_ruby/rest/email_hard_bounces.rb +1 -1
  30. data/lib/braze_ruby/rest/email_status.rb +3 -3
  31. data/lib/braze_ruby/rest/email_unsubscribes.rb +1 -1
  32. data/lib/braze_ruby/rest/export_users.rb +7 -7
  33. data/lib/braze_ruby/rest/identify_users.rb +2 -2
  34. data/lib/braze_ruby/rest/list_segments.rb +1 -1
  35. data/lib/braze_ruby/rest/remove_email_addresses_from_spam.rb +13 -0
  36. data/lib/braze_ruby/rest/remove_external_ids.rb +2 -2
  37. data/lib/braze_ruby/rest/rename_external_ids.rb +2 -2
  38. data/lib/braze_ruby/rest/schedule_messages.rb +6 -6
  39. data/lib/braze_ruby/rest/scheduled_broadcasts.rb +20 -0
  40. data/lib/braze_ruby/rest/send_messages.rb +3 -3
  41. data/lib/braze_ruby/rest/subscription_status_get.rb +1 -1
  42. data/lib/braze_ruby/rest/subscription_status_set.rb +1 -1
  43. data/lib/braze_ruby/rest/subscription_user_status.rb +1 -1
  44. data/lib/braze_ruby/rest/track_users.rb +4 -4
  45. data/lib/braze_ruby/rest/trigger_campaign_schedule.rb +18 -0
  46. data/lib/braze_ruby/rest/trigger_campaign_send.rb +1 -1
  47. data/lib/braze_ruby/rest/trigger_canvas_send.rb +1 -1
  48. data/lib/braze_ruby/rest.rb +24 -20
  49. data/lib/braze_ruby/version.rb +1 -1
  50. data/lib/braze_ruby.rb +17 -4
  51. metadata +51 -197
  52. data/.github/workflows/ci.yml +0 -30
  53. data/Gemfile.lock +0 -82
  54. data/spec/braze_ruby/api_spec.rb +0 -6
  55. data/spec/braze_ruby/endpoints/delete_users_spec.rb +0 -31
  56. data/spec/braze_ruby/endpoints/track_users_spec.rb +0 -74
  57. data/spec/braze_ruby/http_spec.rb +0 -48
  58. data/spec/braze_ruby/rest/create_user_aliases_spec.rb +0 -23
  59. data/spec/braze_ruby/rest/delete_users_spec.rb +0 -22
  60. data/spec/braze_ruby/rest/email_status_spec.rb +0 -20
  61. data/spec/braze_ruby/rest/export_users_spec.rb +0 -21
  62. data/spec/braze_ruby/rest/identify_users_spec.rb +0 -23
  63. data/spec/braze_ruby/rest/remove_external_ids_spec.rb +0 -22
  64. data/spec/braze_ruby/rest/rename_external_ids_spec.rb +0 -22
  65. data/spec/braze_ruby/rest/schedule_messages_spec.rb +0 -37
  66. data/spec/braze_ruby/rest/send_messages_spec.rb +0 -30
  67. data/spec/braze_ruby/rest/track_users_spec.rb +0 -27
  68. data/spec/factories.rb +0 -38
  69. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +0 -71
  70. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +0 -69
  71. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +0 -71
  72. data/spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml +0 -67
  73. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml +0 -71
  74. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml +0 -71
  75. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +0 -68
  76. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +0 -71
  77. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +0 -71
  78. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +0 -71
  79. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +0 -71
  80. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +0 -71
  81. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +0 -71
  82. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +0 -75
  83. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +0 -75
  84. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +0 -75
  85. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +0 -72
  86. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +0 -71
  87. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +0 -68
  88. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +0 -71
  89. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +0 -71
  90. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +0 -81
  91. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +0 -81
  92. data/spec/fixtures/responses/remove_external_ids/unauthorized/responds_with_unauthorized.yml +0 -67
  93. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_created.yml +0 -69
  94. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_success_message.yml +0 -69
  95. data/spec/fixtures/responses/rename_external_ids/unauthorized/responds_with_unauthorized.yml +0 -67
  96. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_created.yml +0 -69
  97. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_success_message.yml +0 -69
  98. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +0 -68
  99. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +0 -71
  100. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +0 -71
  101. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +0 -68
  102. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +0 -71
  103. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +0 -71
  104. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +0 -71
  105. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +0 -68
  106. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +0 -139
  107. 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 +0 -211
  108. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +0 -199
  109. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +0 -211
  110. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +0 -70
  111. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +0 -73
  112. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +0 -73
  113. data/spec/integrations/campaigns_spec.rb +0 -19
  114. data/spec/integrations/canvas_spec.rb +0 -28
  115. data/spec/integrations/create_user_aliases_spec.rb +0 -32
  116. data/spec/integrations/delete_users_spec.rb +0 -32
  117. data/spec/integrations/email_status_spec.rb +0 -38
  118. data/spec/integrations/email_sync_spec.rb +0 -31
  119. data/spec/integrations/export_users_spec.rb +0 -29
  120. data/spec/integrations/identify_users_spec.rb +0 -32
  121. data/spec/integrations/list_segments_spec.rb +0 -21
  122. data/spec/integrations/remove_external_ids_spec.rb +0 -33
  123. data/spec/integrations/rename_external_ids_spec.rb +0 -37
  124. data/spec/integrations/schedule_messages_spec.rb +0 -34
  125. data/spec/integrations/send_messages_spec.rb +0 -33
  126. data/spec/integrations/subscription_spec.rb +0 -149
  127. data/spec/integrations/track_users_spec.rb +0 -38
  128. data/spec/spec_helper.rb +0 -25
  129. data/spec/support/factory_bot.rb +0 -12
  130. data/spec/support/integrations.rb +0 -27
  131. data/spec/support/vcr.rb +0 -20
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'braze_ruby/http'
5
-
6
- describe BrazeRuby::HTTP do
7
- describe "#connection" do
8
- let(:options) { double("options", :"[]=" => nil) }
9
- let(:headers) { double("headers", :"[]=" => nil) }
10
- let(:conn) { double("conn", adapter: nil, options: options, headers: headers) }
11
- let(:api_key) { "braze-api-key" }
12
- let(:braze_url) { "http://example.com" }
13
-
14
- before :each do
15
- allow(Faraday).to receive(:new).and_yield(conn)
16
- allow(Faraday).to receive(:default_adapter).and_return(:default_adapter)
17
- end
18
-
19
- it "it defaults to the timeout option" do
20
- described_class.new(api_key, braze_url).connection
21
-
22
- expect(options).to have_received(:"[]=").with(:timeout, described_class::DEFAULT_TIMEOUT)
23
- end
24
-
25
- it "it sets the default timeout option when given" do
26
- timeout = 5
27
- described_class.new(api_key, braze_url, {timeout: timeout}).connection
28
-
29
- expect(options).to have_received(:"[]=").with(:timeout, timeout)
30
- end
31
-
32
- it "sets the headers" do
33
- described_class.new(api_key, braze_url).connection
34
-
35
-
36
- expect(headers).to have_received(:"[]=").with("Content-Type", "application/json")
37
- expect(headers).to have_received(:"[]=").with("Accept", "application/json")
38
- expect(headers).to have_received(:"[]=").with("User-Agent", "Braze Ruby gem v#{BrazeRuby::VERSION}")
39
- expect(headers).to have_received(:"[]=").with("Authorization", "Bearer braze-api-key")
40
- end
41
-
42
- it "it sets the default adapter" do
43
- described_class.new(api_key, braze_url).connection
44
-
45
- expect(conn).to have_received(:adapter).with(:default_adapter)
46
- end
47
- end
48
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::CreateUserAliases do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) { {user_aliases: [user]} }
9
- let(:user) { { user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
10
-
11
- let(:api_key) { :api_key }
12
-
13
- subject { described_class.new :api_key, :rest_url, {}}
14
-
15
- before { subject.http = http }
16
-
17
- it 'makes an http call to the user aliases endpoint' do
18
- expect(http).to receive(:post).with '/users/alias/new',
19
- payload
20
-
21
- subject.perform(**payload)
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::DeleteUsers do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) { {external_ids: [1, 2, 3]} }
9
-
10
- let(:api_key) { :api_key }
11
-
12
- subject { described_class.new :api_key, :rest_url, {}}
13
-
14
- before { subject.http = http }
15
-
16
- it 'makes an http call to the delete user endpoint' do
17
- expect(http).to receive(:post).with '/users/delete',
18
- payload
19
-
20
- subject.perform(**payload)
21
- end
22
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::EmailStatus do
6
- let(:http) { double(:http) }
7
-
8
- before { subject.http = http }
9
-
10
- subject { described_class.new(:api_key, :rest_url, {}, email: :email, status: :status) }
11
-
12
- it 'makes an http call to the email status endpoint' do
13
- expect(http).to receive(:post).with '/email/status', {
14
- email: :email,
15
- subscription_state: :status
16
- }
17
-
18
- subject.perform
19
- end
20
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::ExportUsers do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) {{ external_ids: external_ids }}
9
- let(:external_ids) { [1] }
10
-
11
- subject { described_class.new :api_key, :rest_url, {} }
12
-
13
- before { subject.http = http }
14
-
15
- it 'makes an http call to the track user endpoint' do
16
- expect(http).to receive(:post).with '/users/export/ids',
17
- payload
18
-
19
- subject.perform(**payload)
20
- end
21
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::IdentifyUsers do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) { {aliases_to_identify: [user]} }
9
- let(:user) { { external_id: 123, user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
10
-
11
- let(:api_key) { :api_key }
12
-
13
- subject { described_class.new :api_key, :rest_url, {}}
14
-
15
- before { subject.http = http }
16
-
17
- it 'makes an http call to the identify users endpoint' do
18
- expect(http).to receive(:post).with '/users/identify',
19
- payload
20
-
21
- subject.perform(**payload)
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::RemoveExternalIds do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) { { external_ids: ['foo'] } }
9
-
10
- let(:api_key) { :api_key }
11
-
12
- subject { described_class.new :api_key, :rest_url, {}}
13
-
14
- before { subject.http = http }
15
-
16
- it 'makes an http call to the remove external ids endpoint' do
17
- expect(http).to receive(:post).with '/users/external_ids/remove',
18
- payload
19
-
20
- subject.perform(**payload)
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::RenameExternalIds do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) { { external_id_renames: [{ current_external_id: 'abc', new_external_id: 'foo' }] } }
9
-
10
- let(:api_key) { :api_key }
11
-
12
- subject { described_class.new :api_key, :rest_url, {}}
13
-
14
- before { subject.http = http }
15
-
16
- it 'makes an http call to the rename external ids endpoint' do
17
- expect(http).to receive(:post).with '/users/external_ids/rename',
18
- payload
19
-
20
- subject.perform(**payload)
21
- end
22
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::ScheduleMessages do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) {{
9
- external_user_ids: :external_user_ids,
10
- time: :time,
11
- in_local_time: :in_local_time,
12
- messages: :messages
13
- }}
14
-
15
- let(:api_key) { :api_key }
16
-
17
- subject { described_class.new(api_key, :rest_url, {}, **payload) }
18
-
19
- before { subject.http = http }
20
-
21
- it 'makes an http call to the schedule messages endpoint' do
22
- expect_schedule_messages_http_call
23
-
24
- subject.perform
25
- end
26
-
27
- def expect_schedule_messages_http_call
28
- expect(http).to receive(:post).with '/messages/schedule/create', {
29
- external_user_ids: :external_user_ids,
30
- schedule: {
31
- time: :time,
32
- in_local_time: :in_local_time
33
- },
34
- messages: :messages
35
- }
36
- end
37
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::SendMessages do
6
- let(:http) { double(:http) }
7
-
8
- subject { described_class.new(
9
- :api_key,
10
- :rest_url,
11
- {},
12
- messages: ["message"],
13
- external_user_ids: ["1", "2"]
14
- ) }
15
-
16
- before { subject.http = http }
17
-
18
- it 'makes an http call to the send messages endpoint' do
19
- expect_send_messages_http_call
20
-
21
- subject.perform
22
- end
23
-
24
- def expect_send_messages_http_call
25
- expect(http).to receive(:post).with '/messages/send', {
26
- messages: ["message"],
27
- external_user_ids: ["1", "2"],
28
- }
29
- end
30
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- describe BrazeRuby::REST::TrackUsers do
6
- let(:http) { double(:http) }
7
-
8
- let(:payload) do
9
- {
10
- attributes: :attributes,
11
- events: :events,
12
- purchases: :purchases
13
- }
14
- end
15
-
16
- let(:api_key) { :api_key }
17
-
18
- subject { described_class.new :api_key, :rest_url, {}}
19
-
20
- before { subject.http = http }
21
-
22
- it 'makes an http call to the track user endpoint' do
23
- expect(http).to receive(:post).with '/users/track', payload
24
-
25
- subject.perform(**payload)
26
- end
27
- end
data/spec/factories.rb DELETED
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- FactoryBot.define do
4
- factory :attribute, class: Hash do
5
- skip_create
6
- external_id { 1 }
7
- foo { :bar }
8
-
9
- initialize_with { attributes }
10
- end
11
-
12
- factory :event, class: Hash do
13
- skip_create
14
- external_id { 1 }
15
- name { :baz }
16
- time { Time.now }
17
-
18
- initialize_with { attributes }
19
- end
20
-
21
- factory :purchase, class: Hash do
22
- skip_create
23
- external_id { 1 }
24
- product_id { 1 }
25
- time { Time.now }
26
- currency { 'CAD' }
27
- price { 1.0 }
28
-
29
- initialize_with { attributes }
30
- end
31
-
32
- factory :messages, class: Hash do
33
- skip_create
34
- apple_push { {alert: :hello} }
35
-
36
- initialize_with { attributes }
37
- end
38
- end
@@ -1,71 +0,0 @@
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: '{"campaign_id":"d8b73da7-0b7c-fc72-1d80-e59c7f20f0d3","recipients":[{"external_user_id":12345,"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.3.3
16
- Authorization:
17
- - Bearer <BRAZE_REST_API_KEY>
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Connection:
26
- - keep-alive
27
- Content-Length:
28
- - '94'
29
- Cache-Control:
30
- - max-age=0, private, must-revalidate
31
- Content-Type:
32
- - application/json
33
- Etag:
34
- - W/"b02a5788c87daf846d9cf451bf7f4e6d"
35
- Server:
36
- - nginx
37
- Strict-Transport-Security:
38
- - max-age=0; includeSubDomains
39
- - max-age=31536000; includeSubDomains
40
- X-Ratelimit-Limit:
41
- - '250000'
42
- X-Ratelimit-Remaining:
43
- - '249998'
44
- X-Ratelimit-Reset:
45
- - '1592427600'
46
- X-Request-Id:
47
- - ab80a33e-db36-4fe9-af89-6ce274df5edc
48
- X-Runtime:
49
- - '0.016803'
50
- Accept-Ranges:
51
- - bytes
52
- Date:
53
- - Wed, 17 Jun 2020 20:04:46 GMT
54
- Via:
55
- - 1.1 varnish
56
- X-Served-By:
57
- - cache-hhn4039-HHN
58
- X-Cache:
59
- - MISS
60
- X-Cache-Hits:
61
- - '0'
62
- X-Timer:
63
- - S1592424287.720589,VS0,VE19
64
- Vary:
65
- - Origin,Accept-Encoding
66
- body:
67
- encoding: ASCII-8BIT
68
- string: '{"dispatch_id":"14497aa4b013bf150881547fb3076fd6","message":"success"}'
69
- http_version:
70
- recorded_at: Wed, 17 Jun 2020 20:04:46 GMT
71
- recorded_with: VCR 5.0.0
@@ -1,69 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: "<BRAZE_REST_URL>/canvas/details?canvas_id=non-existing"
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- Accept:
13
- - application/json
14
- User-Agent:
15
- - Braze Ruby gem v0.3.3
16
- Authorization:
17
- - Bearer <BRAZE_REST_API_KEY>
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 400
23
- message: Bad Request
24
- headers:
25
- Connection:
26
- - keep-alive
27
- Content-Length:
28
- - '90'
29
- Cache-Control:
30
- - no-cache
31
- Content-Type:
32
- - application/json
33
- Server:
34
- - nginx
35
- Strict-Transport-Security:
36
- - max-age=0; includeSubDomains
37
- X-Ratelimit-Limit:
38
- - '250000'
39
- X-Ratelimit-Remaining:
40
- - '249996'
41
- X-Ratelimit-Reset:
42
- - '1592427600'
43
- X-Request-Id:
44
- - c034f03f-7a14-441a-8804-5ab472b339e5
45
- X-Runtime:
46
- - '0.036143'
47
- Accept-Ranges:
48
- - bytes
49
- - bytes
50
- Date:
51
- - Wed, 17 Jun 2020 20:10:13 GMT
52
- Via:
53
- - 1.1 varnish
54
- X-Served-By:
55
- - cache-hhn4053-HHN
56
- X-Cache:
57
- - MISS
58
- X-Cache-Hits:
59
- - '0'
60
- X-Timer:
61
- - S1592424613.170617,VS0,VE40
62
- Vary:
63
- - Origin,Accept-Encoding
64
- body:
65
- encoding: ASCII-8BIT
66
- string: '{"message":"canvas_id must be a string of the Canvas api identifier"}'
67
- http_version:
68
- recorded_at: Wed, 17 Jun 2020 20:10:13 GMT
69
- recorded_with: VCR 5.0.0
@@ -1,71 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/canvas/trigger/send"
6
- body:
7
- encoding: UTF-8
8
- string: '{"canvas_id":"70a7fb99-cbcb-451a-8224-5f8b8c63e03f","recipients":[{"external_user_id":12345,"canvas_entry_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.3.3
16
- Authorization:
17
- - Bearer <BRAZE_REST_API_KEY>
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Connection:
26
- - keep-alive
27
- Content-Length:
28
- - '94'
29
- Cache-Control:
30
- - max-age=0, private, must-revalidate
31
- Content-Type:
32
- - application/json
33
- Etag:
34
- - W/"8095773a816c64baf32bfaed3bbc98c5"
35
- Server:
36
- - nginx
37
- Strict-Transport-Security:
38
- - max-age=0; includeSubDomains
39
- - max-age=31536000; includeSubDomains
40
- X-Ratelimit-Limit:
41
- - '250000'
42
- X-Ratelimit-Remaining:
43
- - '249997'
44
- X-Ratelimit-Reset:
45
- - '1592427600'
46
- X-Request-Id:
47
- - f1378a46-afca-42ec-bfdd-3c624a75bc6b
48
- X-Runtime:
49
- - '0.035689'
50
- Accept-Ranges:
51
- - bytes
52
- Date:
53
- - Wed, 17 Jun 2020 20:08:51 GMT
54
- Via:
55
- - 1.1 varnish
56
- X-Served-By:
57
- - cache-hhn4034-HHN
58
- X-Cache:
59
- - MISS
60
- X-Cache-Hits:
61
- - '0'
62
- X-Timer:
63
- - S1592424531.067560,VS0,VE38
64
- Vary:
65
- - Origin,Accept-Encoding
66
- body:
67
- encoding: ASCII-8BIT
68
- string: '{"dispatch_id":"c249b5eaad19a96b85ce3afc83017e81","message":"success"}'
69
- http_version:
70
- recorded_at: Wed, 17 Jun 2020 20:08:51 GMT
71
- recorded_with: VCR 5.0.0
@@ -1,67 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/users/alias/new"
6
- body:
7
- encoding: UTF-8
8
- string: '{"user_aliases":[{"user_alias":{"alias_name":"abc","alias_label":"foo"}}]}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- Accept:
13
- - application/json
14
- User-Agent:
15
- - Braze Ruby gem v0.4.0
16
- Authorization:
17
- - Bearer non-existent
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 401
23
- message: Unauthorized
24
- headers:
25
- Connection:
26
- - keep-alive
27
- Content-Type:
28
- - application/json
29
- Server:
30
- - nginx
31
- X-Ratelimit-Limit:
32
- - ''
33
- X-Ratelimit-Remaining:
34
- - ''
35
- X-Ratelimit-Reset:
36
- - ''
37
- Cache-Control:
38
- - no-cache
39
- X-Request-Id:
40
- - 238c0308-346b-4b59-9b2a-c91bfb3c9926
41
- X-Runtime:
42
- - '0.002100'
43
- Strict-Transport-Security:
44
- - max-age=0; includeSubDomains
45
- Accept-Ranges:
46
- - bytes
47
- Date:
48
- - Thu, 28 Jan 2021 10:04:42 GMT
49
- Via:
50
- - 1.1 varnish
51
- X-Served-By:
52
- - cache-fra19136-FRA
53
- X-Cache:
54
- - MISS
55
- X-Cache-Hits:
56
- - '0'
57
- X-Timer:
58
- - S1611828282.806343,VS0,VE395
59
- Vary:
60
- - Origin,Accept-Encoding
61
- Transfer-Encoding:
62
- - chunked
63
- body:
64
- encoding: ASCII-8BIT
65
- string: '{"message":"Invalid API key: non-existent"}'
66
- recorded_at: Thu, 28 Jan 2021 10:04:42 GMT
67
- recorded_with: VCR 6.0.0
@@ -1,71 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: "<BRAZE_REST_URL>/users/alias/new"
6
- body:
7
- encoding: UTF-8
8
- string: '{"user_aliases":[{"user_alias":{"alias_name":"abc","alias_label":"foo"}}]}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- Accept:
13
- - application/json
14
- User-Agent:
15
- - Braze Ruby gem v0.3.3
16
- Authorization:
17
- - Bearer <BRAZE_REST_API_KEY>
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Connection:
26
- - keep-alive
27
- Content-Length:
28
- - '66'
29
- Cache-Control:
30
- - max-age=0, private, must-revalidate
31
- Content-Type:
32
- - application/json
33
- Etag:
34
- - W/"da612bda0a786bcb949da037e296a092"
35
- Server:
36
- - nginx
37
- Strict-Transport-Security:
38
- - max-age=0; includeSubDomains
39
- - max-age=31536000; includeSubDomains
40
- X-Ratelimit-Limit:
41
- - '250000'
42
- X-Ratelimit-Remaining:
43
- - '249982'
44
- X-Ratelimit-Reset:
45
- - '1592427600'
46
- X-Request-Id:
47
- - d0f2ec14-ad20-4ec1-8c98-e082ba1a29a7
48
- X-Runtime:
49
- - '0.007261'
50
- Accept-Ranges:
51
- - bytes
52
- Date:
53
- - Wed, 17 Jun 2020 20:30:11 GMT
54
- Via:
55
- - 1.1 varnish
56
- X-Served-By:
57
- - cache-hhn4027-HHN
58
- X-Cache:
59
- - MISS
60
- X-Cache-Hits:
61
- - '0'
62
- X-Timer:
63
- - S1592425811.496339,VS0,VE10
64
- Vary:
65
- - Origin,Accept-Encoding
66
- body:
67
- encoding: ASCII-8BIT
68
- string: '{"aliases_processed":1,"message":"success"}'
69
- http_version:
70
- recorded_at: Wed, 17 Jun 2020 20:30:11 GMT
71
- recorded_with: VCR 5.0.0