braze_ruby 0.3.1 → 0.4.2

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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +14 -3
  3. data/Gemfile.lock +43 -39
  4. data/README.md +59 -0
  5. data/braze_ruby.gemspec +7 -7
  6. data/lib/braze_ruby/api.rb +11 -4
  7. data/lib/braze_ruby/endpoints.rb +4 -0
  8. data/lib/braze_ruby/endpoints/campaigns.rb +1 -1
  9. data/lib/braze_ruby/endpoints/canvas.rb +2 -2
  10. data/lib/braze_ruby/endpoints/create_user_aliases.rb +19 -0
  11. data/lib/braze_ruby/endpoints/delete_users.rb +2 -2
  12. data/lib/braze_ruby/endpoints/email_status.rb +1 -1
  13. data/lib/braze_ruby/endpoints/email_sync.rb +2 -2
  14. data/lib/braze_ruby/endpoints/identify_users.rb +19 -0
  15. data/lib/braze_ruby/endpoints/remove_external_ids.rb +19 -0
  16. data/lib/braze_ruby/endpoints/rename_external_ids.rb +19 -0
  17. data/lib/braze_ruby/endpoints/schedule_messages.rb +1 -1
  18. data/lib/braze_ruby/endpoints/send_messages.rb +1 -1
  19. data/lib/braze_ruby/endpoints/subscription.rb +3 -3
  20. data/lib/braze_ruby/endpoints/track_users.rb +5 -5
  21. data/lib/braze_ruby/http.rb +18 -5
  22. data/lib/braze_ruby/rest.rb +4 -0
  23. data/lib/braze_ruby/rest/base.rb +4 -2
  24. data/lib/braze_ruby/rest/canvas_details.rb +3 -5
  25. data/lib/braze_ruby/rest/create_user_aliases.rb +13 -0
  26. data/lib/braze_ruby/rest/delete_users.rb +1 -2
  27. data/lib/braze_ruby/rest/email_hard_bounces.rb +3 -5
  28. data/lib/braze_ruby/rest/email_status.rb +3 -5
  29. data/lib/braze_ruby/rest/email_unsubscribes.rb +3 -5
  30. data/lib/braze_ruby/rest/export_users.rb +5 -7
  31. data/lib/braze_ruby/rest/identify_users.rb +13 -0
  32. data/lib/braze_ruby/rest/list_segments.rb +2 -4
  33. data/lib/braze_ruby/rest/remove_external_ids.rb +13 -0
  34. data/lib/braze_ruby/rest/rename_external_ids.rb +13 -0
  35. data/lib/braze_ruby/rest/schedule_messages.rb +3 -5
  36. data/lib/braze_ruby/rest/send_messages.rb +3 -5
  37. data/lib/braze_ruby/rest/subscription_status_get.rb +3 -5
  38. data/lib/braze_ruby/rest/subscription_status_set.rb +3 -5
  39. data/lib/braze_ruby/rest/subscription_user_status.rb +3 -5
  40. data/lib/braze_ruby/rest/track_users.rb +1 -2
  41. data/lib/braze_ruby/rest/trigger_campaign_send.rb +4 -8
  42. data/lib/braze_ruby/rest/trigger_canvas_send.rb +3 -5
  43. data/lib/braze_ruby/version.rb +1 -1
  44. data/spec/braze_ruby/endpoints/delete_users_spec.rb +1 -1
  45. data/spec/braze_ruby/endpoints/track_users_spec.rb +8 -8
  46. data/spec/braze_ruby/http_spec.rb +48 -0
  47. data/spec/braze_ruby/rest/create_user_aliases_spec.rb +23 -0
  48. data/spec/braze_ruby/rest/delete_users_spec.rb +3 -3
  49. data/spec/braze_ruby/rest/email_status_spec.rb +1 -2
  50. data/spec/braze_ruby/rest/export_users_spec.rb +3 -3
  51. data/spec/braze_ruby/rest/identify_users_spec.rb +23 -0
  52. data/spec/braze_ruby/rest/remove_external_ids_spec.rb +22 -0
  53. data/spec/braze_ruby/rest/rename_external_ids_spec.rb +22 -0
  54. data/spec/braze_ruby/rest/schedule_messages_spec.rb +1 -2
  55. data/spec/braze_ruby/rest/send_messages_spec.rb +8 -13
  56. data/spec/braze_ruby/rest/track_users_spec.rb +10 -9
  57. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +17 -15
  58. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +16 -14
  59. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +18 -16
  60. data/spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml +67 -0
  61. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml +71 -0
  62. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml +71 -0
  63. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +20 -18
  64. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +25 -23
  65. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +25 -23
  66. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +22 -20
  67. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +22 -20
  68. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +22 -20
  69. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +22 -20
  70. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +18 -16
  71. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +18 -16
  72. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +21 -20
  73. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +25 -22
  74. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +24 -22
  75. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +68 -0
  76. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +71 -0
  77. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +71 -0
  78. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +35 -35
  79. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +35 -35
  80. data/spec/fixtures/responses/remove_external_ids/unauthorized/responds_with_unauthorized.yml +67 -0
  81. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_created.yml +69 -0
  82. data/spec/fixtures/responses/remove_external_ids/with_success/responds_with_success_message.yml +69 -0
  83. data/spec/fixtures/responses/rename_external_ids/unauthorized/responds_with_unauthorized.yml +67 -0
  84. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_created.yml +69 -0
  85. data/spec/fixtures/responses/rename_external_ids/with_success/responds_with_success_message.yml +69 -0
  86. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +20 -19
  87. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +24 -23
  88. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +24 -23
  89. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +20 -18
  90. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +24 -22
  91. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +24 -22
  92. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +16 -14
  93. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +16 -14
  94. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +32 -28
  95. 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 +50 -44
  96. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +48 -42
  97. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +50 -46
  98. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +23 -21
  99. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +22 -20
  100. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +22 -20
  101. data/spec/integrations/campaigns_spec.rb +4 -2
  102. data/spec/integrations/canvas_spec.rb +4 -2
  103. data/spec/integrations/create_user_aliases_spec.rb +32 -0
  104. data/spec/integrations/delete_users_spec.rb +1 -0
  105. data/spec/integrations/email_sync_spec.rb +2 -2
  106. data/spec/integrations/export_users_spec.rb +2 -2
  107. data/spec/integrations/identify_users_spec.rb +32 -0
  108. data/spec/integrations/list_segments_spec.rb +1 -1
  109. data/spec/integrations/remove_external_ids_spec.rb +33 -0
  110. data/spec/integrations/rename_external_ids_spec.rb +37 -0
  111. data/spec/integrations/schedule_messages_spec.rb +2 -1
  112. data/spec/integrations/send_messages_spec.rb +2 -1
  113. data/spec/integrations/subscription_spec.rb +7 -7
  114. data/spec/integrations/track_users_spec.rb +1 -0
  115. data/spec/spec_helper.rb +0 -8
  116. data/spec/support/integrations.rb +5 -1
  117. data/spec/support/vcr.rb +3 -1
  118. metadata +69 -19
@@ -6,12 +6,14 @@ RSpec.describe 'campaigns' do
6
6
  describe 'trigger_send' do
7
7
  it 'sends an email', vcr: true do
8
8
  response = api.trigger_campaign_send(
9
- campaign_id: '69e9b681-779c-4b4c-b6b8-cd74b17d21d2',
9
+ campaign_id: 'd8b73da7-0b7c-fc72-1d80-e59c7f20f0d3',
10
10
  recipients: [
11
- external_user_id: 132404,
11
+ external_user_id: 12345,
12
12
  trigger_properties: {first_name: 'John'}
13
13
  ]
14
14
  )
15
+
16
+ expect(response.success?).to eq(true)
15
17
  end
16
18
  end
17
19
  end
@@ -6,12 +6,14 @@ RSpec.describe 'canvas' do
6
6
  describe 'trigger_send' do
7
7
  it 'sends a canvas', vcr: true do
8
8
  response = api.trigger_canvas_send(
9
- canvas_id: 'dc23ade4-e970-0c52-81bc-b369f64f533d',
9
+ canvas_id: '70a7fb99-cbcb-451a-8224-5f8b8c63e03f',
10
10
  recipients: [
11
- external_user_id: 132404,
11
+ external_user_id: 12345,
12
12
  canvas_entry_properties: {first_name: 'John'}
13
13
  ]
14
14
  )
15
+
16
+ expect(response.success?).to eq(true)
15
17
  end
16
18
  end
17
19
 
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'create user aliases' do
6
+ let(:user) { { user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
7
+
8
+ subject(:create_user_aliases) do
9
+ api.create_user_aliases(user_aliases: [user])
10
+ end
11
+
12
+ context 'with success', vcr: true do
13
+ it 'responds with created' do
14
+ expect(create_user_aliases.status).to be 201
15
+ end
16
+
17
+ it 'responds with success message' do
18
+ expect(JSON.parse(create_user_aliases.body)).to eq(
19
+ 'aliases_processed' => 1,
20
+ 'message' => 'success'
21
+ )
22
+ end
23
+ end
24
+
25
+ context 'unauthorized', vcr: true do
26
+ let(:api_key) { 'non-existent' }
27
+
28
+ it 'responds with unauthorized' do
29
+ expect(create_user_aliases.status).to be 401
30
+ end
31
+ end
32
+ end
@@ -16,6 +16,7 @@ describe 'delete users' do
16
16
 
17
17
  it 'responds with success message' do
18
18
  expect(JSON.parse(delete_users.body)).to include(
19
+ 'deleted' => 3,
19
20
  'message' => 'success'
20
21
  )
21
22
  end
@@ -5,11 +5,11 @@ require 'spec_helper'
5
5
  RSpec.describe 'email sync' do
6
6
  describe 'unsubscribes' do
7
7
  it 'responds with unsubscribed emails', vcr: true do
8
- response = api.email_unsubscribes(start_date: '2019-03-20', end_date: '2019-03-25')
8
+ response = api.email_unsubscribes(start_date: '2020-06-17', end_date: '2020-06-18')
9
9
  emails = JSON.parse(response.body)['emails']
10
10
 
11
11
  expect(emails.size).to eq(1)
12
- expect(emails.first['email']).to eq('wojtek@test.com')
12
+ expect(emails.first['email']).to eq('example@123.com')
13
13
  end
14
14
 
15
15
  it 'responds with empty array when no unsubscribes', vcr: true do
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe 'export users' do
6
6
  context 'by ids' do
7
- subject(:export_users) { api.export_users(external_ids: [1]) }
7
+ subject(:export_users) { api.export_users(external_ids: [12345]) }
8
8
 
9
9
  context 'with success', :vcr do
10
10
  it 'responds with created' do
@@ -15,7 +15,7 @@ describe 'export users' do
15
15
 
16
16
  context 'by segment' do
17
17
  context 'with success', :vcr do
18
- let(:segment_id) { braze_test_segment }
18
+ let(:segment_id) { "3aca937b-9bbc-4e42-9370-05e411967b2b" }
19
19
 
20
20
  subject(:export_users) do
21
21
  api.export_users(segment_id: segment_id, callback_endpoint: 'https://example.com')
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'identify users' do
6
+ let(:user) { { external_id: 12345, user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
7
+
8
+ subject(:identify_users) do
9
+ api.identify_users(aliases_to_identify: [user])
10
+ end
11
+
12
+ context 'with success', vcr: true do
13
+ it 'responds with created' do
14
+ expect(identify_users.status).to be 201
15
+ end
16
+
17
+ it 'responds with success message' do
18
+ expect(JSON.parse(identify_users.body)).to eq(
19
+ 'aliases_processed' => 1,
20
+ 'message' => 'success'
21
+ )
22
+ end
23
+ end
24
+
25
+ context 'unauthorized', vcr: true do
26
+ let(:api_key) { 'non-existent' }
27
+
28
+ it 'responds with unauthorized' do
29
+ expect(identify_users.status).to be 401
30
+ end
31
+ end
32
+ end
@@ -11,7 +11,7 @@ describe 'list segments' do
11
11
  end
12
12
 
13
13
  it 'responds with a list of segments' do
14
- expect(segments.count).to be 13
14
+ expect(segments.count).to be 6
15
15
  end
16
16
 
17
17
  def segments
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'remove external ids' do
6
+ let(:external_ids) { { external_ids: ['abc'] } }
7
+
8
+ subject(:remove_external_ids) do
9
+ api.remove_external_ids(external_ids)
10
+ end
11
+
12
+ context 'with success', vcr: true do
13
+ it 'responds with created' do
14
+ expect(remove_external_ids.status).to be 201
15
+ end
16
+
17
+ it 'responds with success message' do
18
+ expect(JSON.parse(remove_external_ids.body)).to include(
19
+ 'removed_ids' => ['abc'],
20
+ 'removal_errors' => [],
21
+ 'message' => 'success'
22
+ )
23
+ end
24
+ end
25
+
26
+ context 'unauthorized', vcr: true do
27
+ let(:api_key) { 'non-existent' }
28
+
29
+ it 'responds with unauthorized' do
30
+ expect(remove_external_ids.status).to be 401
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe 'rename external ids' do
6
+ let(:external_id_renames) { { external_id_renames: [{ current_external_id: 'abc', new_external_id: 'foo' }] } }
7
+
8
+ subject(:rename_external_ids) do
9
+ api.rename_external_ids(external_id_renames)
10
+ end
11
+
12
+ context 'with success', vcr: true do
13
+ it 'responds with created' do
14
+ expect(rename_external_ids.status).to be 201
15
+ end
16
+
17
+ it 'responds with success message' do
18
+ expect(JSON.parse(rename_external_ids.body)).to include(
19
+ 'external_ids' => [
20
+ hash_including(
21
+ 'current_external_id' => 'abc',
22
+ 'new_external_id' => 'foo'
23
+ ),],
24
+ 'rename_errors' => [],
25
+ 'message' => 'success'
26
+ )
27
+ end
28
+ end
29
+
30
+ context 'unauthorized', vcr: true do
31
+ let(:api_key) { 'non-existent' }
32
+
33
+ it 'responds with unauthorized' do
34
+ expect(rename_external_ids.status).to be 401
35
+ end
36
+ end
37
+ end
@@ -3,7 +3,8 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe 'schedule messages' do
6
- let(:user_ids) { [1] }
6
+ let(:user_ids) { [12345] }
7
+ let(:test_time) { "2020-08-07T00:00:00+02:00" }
7
8
  let(:messages) { build(:messages) }
8
9
 
9
10
  subject(:schedule_messages) do
@@ -3,7 +3,7 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe 'send messages' do
6
- let(:user_ids) { [1] }
6
+ let(:user_ids) { [12345] }
7
7
  let(:messages) { build(:messages) }
8
8
 
9
9
  subject(:send_messages) do
@@ -17,6 +17,7 @@ describe 'send messages' do
17
17
 
18
18
  it 'responds with success message' do
19
19
  expect(JSON.parse(send_messages.body)).to eq(
20
+ 'dispatch_id' => "ea0532cddfc97cd4e5767b351d6af0eb",
20
21
  'message' => 'success'
21
22
  )
22
23
  end
@@ -3,10 +3,10 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  RSpec.describe 'subscription', vcr: true do
6
- let(:subscription_group_id) { '0201b87a-ef6e-4410-9412-a298c4c1206d' }
7
- let(:subscribed_user) { 'test-gem-001' }
8
- let(:unsubscribed_user) { 'test-gem-002' }
9
- let(:never_subscribed_user) { 'test-gem-003' }
6
+ let(:subscription_group_id) { 'ed06e19a-69b1-4f9b-a452-2db2c4e303a8' }
7
+ let(:subscribed_user) { 'test-user-1' }
8
+ let(:unsubscribed_user) { 'test-user-2' }
9
+ let(:never_subscribed_user) { 'test-user-3' }
10
10
 
11
11
  context 'when getting subscription group statuses' do
12
12
  let(:json_response) { JSON.parse(response.body) }
@@ -83,9 +83,9 @@ RSpec.describe 'subscription', vcr: true do
83
83
  expect(json_response).to eq(
84
84
  'message' => 'success',
85
85
  'status' => {
86
- 'test-gem-001' => 'Subscribed',
87
- 'test-gem-002' => 'Unsubscribed',
88
- 'test-gem-003' => 'unknown'
86
+ 'test-user-1' => 'Subscribed',
87
+ 'test-user-2' => 'Unsubscribed',
88
+ 'test-user-3' => 'unknown'
89
89
  }
90
90
  )
91
91
  end
@@ -4,6 +4,7 @@ require 'spec_helper'
4
4
 
5
5
  describe 'track users' do
6
6
  let(:attributes) { [build(:attribute)] }
7
+ let(:test_time) { Time.parse('2019-02-15 00:00:00 -0500') }
7
8
  let(:events) { [build(:event, time: test_time)] }
8
9
  let(:purchases) { [build(:purchase, time: test_time)] }
9
10
 
data/spec/spec_helper.rb CHANGED
@@ -15,10 +15,6 @@ BRAZE_REST_API_KEY = ENV.fetch('BRAZE_REST_API_KEY', 'test')
15
15
  BRAZE_REST_URL = ENV.fetch('BRAZE_REST_URL', 'https://rest.iad-03.braze.com')
16
16
 
17
17
  RSpec.configure do |config|
18
- def test_time
19
- Time.parse('2019-02-15 00:00:00 -0500')
20
- end
21
-
22
18
  def braze_rest_api_key
23
19
  BRAZE_REST_API_KEY
24
20
  end
@@ -26,8 +22,4 @@ RSpec.configure do |config|
26
22
  def braze_rest_url
27
23
  BRAZE_REST_URL
28
24
  end
29
-
30
- def braze_test_segment
31
- 'a8fde797-4c44-4406-8e6c-5850d323f169'
32
- end
33
25
  end
@@ -13,8 +13,12 @@ module Integrations
13
13
  braze_test_segment
14
14
  end
15
15
 
16
+ def options
17
+ {}
18
+ end
19
+
16
20
  def api
17
- BrazeRuby::API.new(api_key, rest_url)
21
+ BrazeRuby::API.new(api_key, rest_url, options)
18
22
  end
19
23
 
20
24
  RSpec.configure do |config|
data/spec/support/vcr.rb CHANGED
@@ -9,7 +9,9 @@ VCR.configure do |config|
9
9
  config.cassette_library_dir = 'spec/fixtures/responses'
10
10
 
11
11
  config.default_cassette_options = {
12
- match_requests_on: [:method, :uri, :body]
12
+ match_requests_on: [:method, :uri, :body],
13
+ record: :once,
14
+ allow_unused_http_interactions: false
13
15
  }
14
16
 
15
17
  config.configure_rspec_metadata!
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.3.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nussbaum
@@ -10,22 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-11-27 00:00:00.000000000 Z
13
+ date: 2021-02-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 0.17.1
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: 0.17.1
28
+ version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: bundler
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +44,14 @@ dependencies:
44
44
  name: rake
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: 12.3.3
50
50
  type: :development
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - "~>"
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: 12.3.3
57
57
  - !ruby/object:Gem::Dependency
@@ -60,14 +60,14 @@ dependencies:
60
60
  requirements:
61
61
  - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: 3.8.0
63
+ version: '3.8'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - "~>"
69
69
  - !ruby/object:Gem::Version
70
- version: 3.8.0
70
+ version: '3.8'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: dotenv
73
73
  requirement: !ruby/object:Gem::Requirement
@@ -86,56 +86,56 @@ dependencies:
86
86
  name: vcr
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - "~>"
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: 5.0.0
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - "~>"
96
+ - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: 5.0.0
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: webmock
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - "~>"
103
+ - - ">="
104
104
  - !ruby/object:Gem::Version
105
105
  version: 3.7.5
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - "~>"
110
+ - - ">="
111
111
  - !ruby/object:Gem::Version
112
112
  version: 3.7.5
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: pry
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - "~>"
117
+ - - ">="
118
118
  - !ruby/object:Gem::Version
119
119
  version: 0.12.2
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - "~>"
124
+ - - ">="
125
125
  - !ruby/object:Gem::Version
126
126
  version: 0.12.2
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: factory_bot
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - "~>"
131
+ - - ">="
132
132
  - !ruby/object:Gem::Version
133
133
  version: 5.1.0
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - "~>"
138
+ - - ">="
139
139
  - !ruby/object:Gem::Version
140
140
  version: 5.1.0
141
141
  description: Braze wrapper
@@ -162,9 +162,13 @@ files:
162
162
  - lib/braze_ruby/endpoints.rb
163
163
  - lib/braze_ruby/endpoints/campaigns.rb
164
164
  - lib/braze_ruby/endpoints/canvas.rb
165
+ - lib/braze_ruby/endpoints/create_user_aliases.rb
165
166
  - lib/braze_ruby/endpoints/delete_users.rb
166
167
  - lib/braze_ruby/endpoints/email_status.rb
167
168
  - lib/braze_ruby/endpoints/email_sync.rb
169
+ - lib/braze_ruby/endpoints/identify_users.rb
170
+ - lib/braze_ruby/endpoints/remove_external_ids.rb
171
+ - lib/braze_ruby/endpoints/rename_external_ids.rb
168
172
  - lib/braze_ruby/endpoints/schedule_messages.rb
169
173
  - lib/braze_ruby/endpoints/send_messages.rb
170
174
  - lib/braze_ruby/endpoints/subscription.rb
@@ -173,12 +177,16 @@ files:
173
177
  - lib/braze_ruby/rest.rb
174
178
  - lib/braze_ruby/rest/base.rb
175
179
  - lib/braze_ruby/rest/canvas_details.rb
180
+ - lib/braze_ruby/rest/create_user_aliases.rb
176
181
  - lib/braze_ruby/rest/delete_users.rb
177
182
  - lib/braze_ruby/rest/email_hard_bounces.rb
178
183
  - lib/braze_ruby/rest/email_status.rb
179
184
  - lib/braze_ruby/rest/email_unsubscribes.rb
180
185
  - lib/braze_ruby/rest/export_users.rb
186
+ - lib/braze_ruby/rest/identify_users.rb
181
187
  - lib/braze_ruby/rest/list_segments.rb
188
+ - lib/braze_ruby/rest/remove_external_ids.rb
189
+ - lib/braze_ruby/rest/rename_external_ids.rb
182
190
  - lib/braze_ruby/rest/schedule_messages.rb
183
191
  - lib/braze_ruby/rest/send_messages.rb
184
192
  - lib/braze_ruby/rest/subscription_status_get.rb
@@ -191,9 +199,14 @@ files:
191
199
  - spec/braze_ruby/api_spec.rb
192
200
  - spec/braze_ruby/endpoints/delete_users_spec.rb
193
201
  - spec/braze_ruby/endpoints/track_users_spec.rb
202
+ - spec/braze_ruby/http_spec.rb
203
+ - spec/braze_ruby/rest/create_user_aliases_spec.rb
194
204
  - spec/braze_ruby/rest/delete_users_spec.rb
195
205
  - spec/braze_ruby/rest/email_status_spec.rb
196
206
  - spec/braze_ruby/rest/export_users_spec.rb
207
+ - spec/braze_ruby/rest/identify_users_spec.rb
208
+ - spec/braze_ruby/rest/remove_external_ids_spec.rb
209
+ - spec/braze_ruby/rest/rename_external_ids_spec.rb
197
210
  - spec/braze_ruby/rest/schedule_messages_spec.rb
198
211
  - spec/braze_ruby/rest/send_messages_spec.rb
199
212
  - spec/braze_ruby/rest/track_users_spec.rb
@@ -201,6 +214,9 @@ files:
201
214
  - spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
202
215
  - spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml
203
216
  - spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml
217
+ - spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml
218
+ - spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml
219
+ - spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml
204
220
  - spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
205
221
  - spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
206
222
  - spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
@@ -213,8 +229,17 @@ files:
213
229
  - spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml
214
230
  - spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml
215
231
  - spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml
232
+ - spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml
233
+ - spec/fixtures/responses/identify_users/with_success/responds_with_created.yml
234
+ - spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml
216
235
  - spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml
217
236
  - spec/fixtures/responses/list_segments/with_success/responds_with_success.yml
237
+ - spec/fixtures/responses/remove_external_ids/unauthorized/responds_with_unauthorized.yml
238
+ - spec/fixtures/responses/remove_external_ids/with_success/responds_with_created.yml
239
+ - spec/fixtures/responses/remove_external_ids/with_success/responds_with_success_message.yml
240
+ - spec/fixtures/responses/rename_external_ids/unauthorized/responds_with_unauthorized.yml
241
+ - spec/fixtures/responses/rename_external_ids/with_success/responds_with_created.yml
242
+ - spec/fixtures/responses/rename_external_ids/with_success/responds_with_success_message.yml
218
243
  - spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml
219
244
  - spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml
220
245
  - spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml
@@ -232,11 +257,15 @@ files:
232
257
  - spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
233
258
  - spec/integrations/campaigns_spec.rb
234
259
  - spec/integrations/canvas_spec.rb
260
+ - spec/integrations/create_user_aliases_spec.rb
235
261
  - spec/integrations/delete_users_spec.rb
236
262
  - spec/integrations/email_status_spec.rb
237
263
  - spec/integrations/email_sync_spec.rb
238
264
  - spec/integrations/export_users_spec.rb
265
+ - spec/integrations/identify_users_spec.rb
239
266
  - spec/integrations/list_segments_spec.rb
267
+ - spec/integrations/remove_external_ids_spec.rb
268
+ - spec/integrations/rename_external_ids_spec.rb
240
269
  - spec/integrations/schedule_messages_spec.rb
241
270
  - spec/integrations/send_messages_spec.rb
242
271
  - spec/integrations/subscription_spec.rb
@@ -266,7 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
295
  - !ruby/object:Gem::Version
267
296
  version: '0'
268
297
  requirements: []
269
- rubygems_version: 3.0.1
298
+ rubygems_version: 3.1.4
270
299
  signing_key:
271
300
  specification_version: 4
272
301
  summary: A wrapper for the Braze REST API forked from the appboy gem, track users/events/purchases,
@@ -275,9 +304,14 @@ test_files:
275
304
  - spec/braze_ruby/api_spec.rb
276
305
  - spec/braze_ruby/endpoints/delete_users_spec.rb
277
306
  - spec/braze_ruby/endpoints/track_users_spec.rb
307
+ - spec/braze_ruby/http_spec.rb
308
+ - spec/braze_ruby/rest/create_user_aliases_spec.rb
278
309
  - spec/braze_ruby/rest/delete_users_spec.rb
279
310
  - spec/braze_ruby/rest/email_status_spec.rb
280
311
  - spec/braze_ruby/rest/export_users_spec.rb
312
+ - spec/braze_ruby/rest/identify_users_spec.rb
313
+ - spec/braze_ruby/rest/remove_external_ids_spec.rb
314
+ - spec/braze_ruby/rest/rename_external_ids_spec.rb
281
315
  - spec/braze_ruby/rest/schedule_messages_spec.rb
282
316
  - spec/braze_ruby/rest/send_messages_spec.rb
283
317
  - spec/braze_ruby/rest/track_users_spec.rb
@@ -285,6 +319,9 @@ test_files:
285
319
  - spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
286
320
  - spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml
287
321
  - spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml
322
+ - spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml
323
+ - spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml
324
+ - spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml
288
325
  - spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
289
326
  - spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
290
327
  - spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
@@ -297,8 +334,17 @@ test_files:
297
334
  - spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml
298
335
  - spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml
299
336
  - spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml
337
+ - spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml
338
+ - spec/fixtures/responses/identify_users/with_success/responds_with_created.yml
339
+ - spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml
300
340
  - spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml
301
341
  - spec/fixtures/responses/list_segments/with_success/responds_with_success.yml
342
+ - spec/fixtures/responses/remove_external_ids/unauthorized/responds_with_unauthorized.yml
343
+ - spec/fixtures/responses/remove_external_ids/with_success/responds_with_created.yml
344
+ - spec/fixtures/responses/remove_external_ids/with_success/responds_with_success_message.yml
345
+ - spec/fixtures/responses/rename_external_ids/unauthorized/responds_with_unauthorized.yml
346
+ - spec/fixtures/responses/rename_external_ids/with_success/responds_with_created.yml
347
+ - spec/fixtures/responses/rename_external_ids/with_success/responds_with_success_message.yml
302
348
  - spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml
303
349
  - spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml
304
350
  - spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml
@@ -316,11 +362,15 @@ test_files:
316
362
  - spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
317
363
  - spec/integrations/campaigns_spec.rb
318
364
  - spec/integrations/canvas_spec.rb
365
+ - spec/integrations/create_user_aliases_spec.rb
319
366
  - spec/integrations/delete_users_spec.rb
320
367
  - spec/integrations/email_status_spec.rb
321
368
  - spec/integrations/email_sync_spec.rb
322
369
  - spec/integrations/export_users_spec.rb
370
+ - spec/integrations/identify_users_spec.rb
323
371
  - spec/integrations/list_segments_spec.rb
372
+ - spec/integrations/remove_external_ids_spec.rb
373
+ - spec/integrations/rename_external_ids_spec.rb
324
374
  - spec/integrations/schedule_messages_spec.rb
325
375
  - spec/integrations/send_messages_spec.rb
326
376
  - spec/integrations/subscription_spec.rb