braze_ruby 0.3.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +57 -0
  3. data/.circleci/gem_credentials +2 -0
  4. data/.circleci/setup-rubygems +6 -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 +49 -2
  10. data/Rakefile +2 -1
  11. data/bin/release +16 -0
  12. data/braze_ruby.gemspec +28 -31
  13. data/lib/braze_ruby.rb +4 -4
  14. data/lib/braze_ruby/api.rb +20 -14
  15. data/lib/braze_ruby/deprecated.rb +4 -4
  16. data/lib/braze_ruby/endpoints.rb +10 -7
  17. data/lib/braze_ruby/endpoints/campaigns.rb +1 -1
  18. data/lib/braze_ruby/endpoints/canvas.rb +2 -2
  19. data/lib/braze_ruby/endpoints/create_user_aliases.rb +19 -0
  20. data/lib/braze_ruby/endpoints/delete_users.rb +2 -2
  21. data/lib/braze_ruby/endpoints/email_status.rb +1 -1
  22. data/lib/braze_ruby/endpoints/email_sync.rb +2 -2
  23. data/lib/braze_ruby/endpoints/identify_users.rb +2 -2
  24. data/lib/braze_ruby/endpoints/remove_external_ids.rb +19 -0
  25. data/lib/braze_ruby/endpoints/rename_external_ids.rb +19 -0
  26. data/lib/braze_ruby/endpoints/schedule_messages.rb +1 -1
  27. data/lib/braze_ruby/endpoints/send_messages.rb +1 -1
  28. data/lib/braze_ruby/endpoints/subscription.rb +3 -4
  29. data/lib/braze_ruby/endpoints/track_users.rb +5 -5
  30. data/lib/braze_ruby/http.rb +21 -8
  31. data/lib/braze_ruby/rest.rb +20 -17
  32. data/lib/braze_ruby/rest/base.rb +5 -3
  33. data/lib/braze_ruby/rest/canvas_details.rb +4 -6
  34. data/lib/braze_ruby/rest/create_user_aliases.rb +13 -0
  35. data/lib/braze_ruby/rest/delete_users.rb +3 -4
  36. data/lib/braze_ruby/rest/email_hard_bounces.rb +4 -6
  37. data/lib/braze_ruby/rest/email_status.rb +6 -8
  38. data/lib/braze_ruby/rest/email_unsubscribes.rb +4 -6
  39. data/lib/braze_ruby/rest/export_users.rb +9 -11
  40. data/lib/braze_ruby/rest/identify_users.rb +3 -4
  41. data/lib/braze_ruby/rest/list_segments.rb +2 -4
  42. data/lib/braze_ruby/rest/remove_external_ids.rb +13 -0
  43. data/lib/braze_ruby/rest/rename_external_ids.rb +13 -0
  44. data/lib/braze_ruby/rest/schedule_messages.rb +9 -11
  45. data/lib/braze_ruby/rest/send_messages.rb +6 -8
  46. data/lib/braze_ruby/rest/subscription_status_get.rb +4 -6
  47. data/lib/braze_ruby/rest/subscription_status_set.rb +4 -6
  48. data/lib/braze_ruby/rest/subscription_user_status.rb +4 -6
  49. data/lib/braze_ruby/rest/track_users.rb +5 -6
  50. data/lib/braze_ruby/rest/trigger_campaign_send.rb +4 -8
  51. data/lib/braze_ruby/rest/trigger_canvas_send.rb +4 -6
  52. data/lib/braze_ruby/version.rb +1 -1
  53. metadata +61 -175
  54. data/.github/workflows/ci.yml +0 -19
  55. data/Gemfile.lock +0 -78
  56. data/spec/braze_ruby/api_spec.rb +0 -6
  57. data/spec/braze_ruby/endpoints/delete_users_spec.rb +0 -31
  58. data/spec/braze_ruby/endpoints/track_users_spec.rb +0 -74
  59. data/spec/braze_ruby/rest/delete_users_spec.rb +0 -22
  60. data/spec/braze_ruby/rest/email_status_spec.rb +0 -21
  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/schedule_messages_spec.rb +0 -38
  64. data/spec/braze_ruby/rest/send_messages_spec.rb +0 -35
  65. data/spec/braze_ruby/rest/track_users_spec.rb +0 -26
  66. data/spec/factories.rb +0 -38
  67. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +0 -69
  68. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +0 -67
  69. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +0 -69
  70. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +0 -66
  71. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +0 -69
  72. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +0 -69
  73. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +0 -69
  74. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +0 -69
  75. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +0 -69
  76. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +0 -69
  77. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +0 -73
  78. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +0 -73
  79. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +0 -74
  80. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +0 -69
  81. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +0 -69
  82. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +0 -66
  83. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +0 -69
  84. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +0 -69
  85. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +0 -81
  86. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +0 -81
  87. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +0 -67
  88. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +0 -70
  89. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +0 -70
  90. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +0 -66
  91. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +0 -69
  92. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +0 -69
  93. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +0 -69
  94. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +0 -66
  95. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +0 -135
  96. 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 -205
  97. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +0 -193
  98. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +0 -207
  99. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +0 -68
  100. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +0 -71
  101. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +0 -71
  102. data/spec/integrations/campaigns_spec.rb +0 -17
  103. data/spec/integrations/canvas_spec.rb +0 -26
  104. data/spec/integrations/delete_users_spec.rb +0 -31
  105. data/spec/integrations/email_status_spec.rb +0 -38
  106. data/spec/integrations/email_sync_spec.rb +0 -31
  107. data/spec/integrations/export_users_spec.rb +0 -29
  108. data/spec/integrations/identify_users_spec.rb +0 -32
  109. data/spec/integrations/list_segments_spec.rb +0 -21
  110. data/spec/integrations/schedule_messages_spec.rb +0 -33
  111. data/spec/integrations/send_messages_spec.rb +0 -32
  112. data/spec/integrations/subscription_spec.rb +0 -149
  113. data/spec/integrations/track_users_spec.rb +0 -37
  114. data/spec/spec_helper.rb +0 -33
  115. data/spec/support/factory_bot.rb +0 -12
  116. data/spec/support/integrations.rb +0 -23
  117. data/spec/support/vcr.rb +0 -18
@@ -4,7 +4,7 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module Campaigns
6
6
  def trigger_campaign_send(**payload)
7
- BrazeRuby::REST::TriggerCampaignSend.new(api_key, braze_url, payload).perform
7
+ BrazeRuby::REST::TriggerCampaignSend.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
  end
10
10
  end
@@ -4,11 +4,11 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module Canvas
6
6
  def trigger_canvas_send(**payload)
7
- BrazeRuby::REST::TriggerCanvasSend.new(api_key, braze_url, payload).perform
7
+ BrazeRuby::REST::TriggerCanvasSend.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  def canvas_details(**payload)
11
- BrazeRuby::REST::CanvasDetails.new(api_key, braze_url, payload).perform
11
+ BrazeRuby::REST::CanvasDetails.new(api_key, braze_url, options, **payload).perform
12
12
  end
13
13
  end
14
14
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module Endpoints
5
+ module CreateUserAliases
6
+ attr_writer :create_user_aliases_service
7
+
8
+ def create_user_aliases(**payload)
9
+ create_user_aliases_service.perform(**payload)
10
+ end
11
+
12
+ private
13
+
14
+ def create_user_aliases_service
15
+ @create_user_aliases_service ||= BrazeRuby::REST::CreateUserAliases.new(api_key, braze_url, options)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -6,7 +6,7 @@ module BrazeRuby
6
6
  attr_writer :delete_users_service
7
7
 
8
8
  def delete_users_action(**payload)
9
- delete_users_service.perform(api_key, payload)
9
+ delete_users_service.perform(**payload)
10
10
  end
11
11
 
12
12
  def delete_users(payload)
@@ -16,7 +16,7 @@ module BrazeRuby
16
16
  private
17
17
 
18
18
  def delete_users_service
19
- @delete_users_service ||= BrazeRuby::REST::DeleteUsers.new(braze_url)
19
+ @delete_users_service ||= BrazeRuby::REST::DeleteUsers.new(api_key, braze_url, options)
20
20
  end
21
21
  end
22
22
  end
@@ -4,7 +4,7 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module EmailStatus
6
6
  def email_status(**payload)
7
- email_status_service.new(api_key, braze_url, payload).perform
7
+ email_status_service.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  def email_status_service
@@ -4,11 +4,11 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module EmailSync
6
6
  def email_unsubscribes(**payload)
7
- BrazeRuby::REST::EmailUnsubscribes.new(api_key, braze_url, payload).perform
7
+ BrazeRuby::REST::EmailUnsubscribes.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  def email_hard_bounces(**payload)
11
- BrazeRuby::REST::EmailHardBounces.new(api_key, braze_url, payload).perform
11
+ BrazeRuby::REST::EmailHardBounces.new(api_key, braze_url, options, **payload).perform
12
12
  end
13
13
  end
14
14
  end
@@ -6,13 +6,13 @@ module BrazeRuby
6
6
  attr_writer :identify_users_service
7
7
 
8
8
  def identify_users(**payload)
9
- identify_users_service.perform(api_key, payload)
9
+ identify_users_service.perform(**payload)
10
10
  end
11
11
 
12
12
  private
13
13
 
14
14
  def identify_users_service
15
- @identify_users_service ||= BrazeRuby::REST::IdentifyUsers.new(braze_url)
15
+ @identify_users_service ||= BrazeRuby::REST::IdentifyUsers.new(api_key, braze_url, options)
16
16
  end
17
17
  end
18
18
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module Endpoints
5
+ module RemoveExternalIds
6
+ attr_writer :remove_external_ids_service
7
+
8
+ def remove_external_ids(payload)
9
+ remove_external_ids_service.perform(external_ids: payload[:external_ids])
10
+ end
11
+
12
+ private
13
+
14
+ def remove_external_ids_service
15
+ @remove_external_ids ||= BrazeRuby::REST::RemoveExternalIds.new(api_key, braze_url, options)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module Endpoints
5
+ module RenameExternalIds
6
+ attr_writer :rename_external_ids_service
7
+
8
+ def rename_external_ids(payload)
9
+ rename_external_ids_service.perform(external_id_renames: payload[:external_id_renames])
10
+ end
11
+
12
+ private
13
+
14
+ def rename_external_ids_service
15
+ @rename_external_ids ||= BrazeRuby::REST::RenameExternalIds.new(api_key, braze_url, options)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -4,7 +4,7 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module ScheduleMessages
6
6
  def schedule_messages(**payload)
7
- schedule_messages_service.new(api_key, braze_url, payload).perform
7
+ schedule_messages_service.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  private
@@ -4,7 +4,7 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module SendMessages
6
6
  def send_messages(**payload)
7
- send_messages_service.new(api_key, braze_url, payload).perform
7
+ send_messages_service.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  private
@@ -4,16 +4,15 @@ module BrazeRuby
4
4
  module Endpoints
5
5
  module Subscription
6
6
  def subscription_status_set(**payload)
7
- BrazeRuby::REST::SubscriptionStatusSet.new(api_key, braze_url, payload).perform
7
+ BrazeRuby::REST::SubscriptionStatusSet.new(api_key, braze_url, options, **payload).perform
8
8
  end
9
9
 
10
10
  def subscription_status_get(**payload)
11
- BrazeRuby::REST::SubscriptionStatusGet.new(api_key, braze_url, payload).perform
11
+ BrazeRuby::REST::SubscriptionStatusGet.new(api_key, braze_url, options, **payload).perform
12
12
  end
13
13
 
14
-
15
14
  def subscription_user_status(**payload)
16
- BrazeRuby::REST::SubscriptionUserStatus.new(api_key, braze_url, payload).perform
15
+ BrazeRuby::REST::SubscriptionUserStatus.new(api_key, braze_url, options, **payload).perform
17
16
  end
18
17
  end
19
18
  end
@@ -6,25 +6,25 @@ module BrazeRuby
6
6
  attr_writer :track_users_service
7
7
 
8
8
  def track_users(**payload)
9
- track_users_service.perform(api_key, payload)
9
+ track_users_service.perform(**payload)
10
10
  end
11
11
 
12
- def track_purchase(payload)
12
+ def track_purchase(**payload)
13
13
  track_users(purchases: [payload])
14
14
  end
15
15
 
16
- def track_event(payload)
16
+ def track_event(**payload)
17
17
  track_users(events: [payload])
18
18
  end
19
19
 
20
- def track_attribute(payload)
20
+ def track_attribute(**payload)
21
21
  track_users(attributes: [payload])
22
22
  end
23
23
 
24
24
  private
25
25
 
26
26
  def track_users_service
27
- @track_users_service ||= BrazeRuby::REST::TrackUsers.new(braze_url)
27
+ @track_users_service ||= BrazeRuby::REST::TrackUsers.new(api_key, braze_url, options)
28
28
  end
29
29
  end
30
30
  end
@@ -1,12 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
- require 'faraday'
3
+ require "json"
4
+ require "faraday"
5
5
 
6
6
  module BrazeRuby
7
7
  class HTTP
8
- def initialize(braze_url)
8
+ DEFAULT_TIMEOUT = 30
9
+
10
+ def initialize(api_key, braze_url, options = {})
11
+ @api_key = api_key
9
12
  @braze_url = braze_url
13
+ @options = default_options.merge(options)
10
14
  end
11
15
 
12
16
  def post(path, payload)
@@ -15,20 +19,29 @@ module BrazeRuby
15
19
  end
16
20
  end
17
21
 
18
- def get(path, query)
22
+ def get(path, query = {})
19
23
  connection.get path, query
20
24
  end
21
25
 
22
26
  def connection
23
27
  @connection ||= Faraday.new(url: @braze_url) do |connection|
24
- connection.headers['Content-Type'] = 'application/json'
25
- connection.headers['Accept'] = 'application/json'
26
- connection.headers['User-Agent'] = "Braze Ruby gem v#{BrazeRuby::VERSION}"
28
+ connection.headers["Content-Type"] = "application/json"
29
+ connection.headers["Accept"] = "application/json"
30
+ connection.headers["User-Agent"] = "Braze Ruby gem v#{BrazeRuby::VERSION}"
31
+ connection.headers["Authorization"] = "Bearer #{@api_key}"
27
32
 
28
- connection.response :logger if ENV['BRAZE_RUBY_DEBUG']
33
+ connection.response :logger if ENV["BRAZE_RUBY_DEBUG"]
29
34
 
30
35
  connection.adapter Faraday.default_adapter
36
+
37
+ connection.options[:timeout] = @options[:timeout]
31
38
  end
32
39
  end
40
+
41
+ private
42
+
43
+ def default_options
44
+ {timeout: DEFAULT_TIMEOUT}
45
+ end
33
46
  end
34
47
  end
@@ -1,19 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'braze_ruby/rest/base'
4
- require 'braze_ruby/rest/track_users'
5
- require 'braze_ruby/rest/send_messages'
6
- require 'braze_ruby/rest/schedule_messages'
7
- require 'braze_ruby/rest/email_status'
8
- require 'braze_ruby/rest/email_hard_bounces'
9
- require 'braze_ruby/rest/email_unsubscribes'
10
- require 'braze_ruby/rest/export_users'
11
- require 'braze_ruby/rest/list_segments'
12
- require 'braze_ruby/rest/delete_users'
13
- require 'braze_ruby/rest/trigger_campaign_send'
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'
19
- require 'braze_ruby/rest/identify_users'
3
+ require "braze_ruby/rest/base"
4
+ require "braze_ruby/rest/track_users"
5
+ require "braze_ruby/rest/send_messages"
6
+ require "braze_ruby/rest/schedule_messages"
7
+ require "braze_ruby/rest/email_status"
8
+ require "braze_ruby/rest/email_hard_bounces"
9
+ require "braze_ruby/rest/email_unsubscribes"
10
+ require "braze_ruby/rest/export_users"
11
+ require "braze_ruby/rest/list_segments"
12
+ require "braze_ruby/rest/delete_users"
13
+ require "braze_ruby/rest/trigger_campaign_send"
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"
19
+ require "braze_ruby/rest/identify_users"
20
+ require "braze_ruby/rest/create_user_aliases"
21
+ require "braze_ruby/rest/rename_external_ids"
22
+ require "braze_ruby/rest/remove_external_ids"
@@ -1,20 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'braze_ruby/http'
3
+ require "braze_ruby/http"
4
4
 
5
5
  module BrazeRuby
6
6
  module REST
7
7
  class Base
8
8
  attr_writer :http
9
9
 
10
- def initialize(braze_url)
10
+ def initialize(api_key, braze_url, options)
11
+ @api_key = api_key
11
12
  @braze_url = braze_url
13
+ @options = options
12
14
  end
13
15
 
14
16
  private
15
17
 
16
18
  def http
17
- @http ||= BrazeRuby::HTTP.new(@braze_url)
19
+ @http ||= BrazeRuby::HTTP.new(@api_key, @braze_url, @options)
18
20
  end
19
21
  end
20
22
  end
@@ -3,17 +3,15 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class CanvasDetails < Base
6
- attr_reader :api_key, :params
6
+ attr_reader :params
7
7
 
8
- def initialize(api_key, braze_url, **params)
9
- @api_key = api_key
8
+ def initialize(api_key, braze_url, options, **params)
10
9
  @params = params
11
- super braze_url
10
+ super api_key, braze_url, options
12
11
  end
13
12
 
14
13
  def perform
15
- http.get('/canvas/details', {
16
- 'api_key': api_key,
14
+ http.get("/canvas/details", {
17
15
  **@params
18
16
  })
19
17
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class CreateUserAliases < Base
6
+ def perform(user_aliases: [])
7
+ http.post "/users/alias/new", {
8
+ user_aliases: user_aliases
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -3,10 +3,9 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class DeleteUsers < Base
6
- def perform(api_key, external_ids: [])
7
- http.post '/users/delete', {
8
- 'api_key': api_key,
9
- 'external_ids': external_ids
6
+ def perform(external_ids: [])
7
+ http.post "/users/delete", {
8
+ external_ids: external_ids
10
9
  }
11
10
  end
12
11
  end
@@ -3,17 +3,15 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class EmailHardBounces < Base
6
- attr_reader :api_key, :params
6
+ attr_reader :params
7
7
 
8
- def initialize(api_key, braze_url, **params)
9
- @api_key = api_key
8
+ def initialize(api_key, braze_url, options, **params)
10
9
  @params = params
11
- super braze_url
10
+ super api_key, braze_url, options
12
11
  end
13
12
 
14
13
  def perform
15
- http.get('/email/hard_bounces', {
16
- 'api_key': api_key,
14
+ http.get("/email/hard_bounces", {
17
15
  **@params
18
16
  })
19
17
  end
@@ -3,20 +3,18 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class EmailStatus < Base
6
- attr_reader :api_key, :email, :status
6
+ attr_reader :email, :status
7
7
 
8
- def initialize(api_key, braze_url, email: nil, status: nil)
9
- @api_key = api_key
8
+ def initialize(api_key, braze_url, options, email: nil, status: nil)
10
9
  @email = email
11
10
  @status = status
12
- super braze_url
11
+ super api_key, braze_url, options
13
12
  end
14
13
 
15
14
  def perform
16
- http.post '/email/status', {
17
- 'api_key': api_key,
18
- 'email': email,
19
- 'subscription_state': status
15
+ http.post "/email/status", {
16
+ email: email,
17
+ subscription_state: status
20
18
  }
21
19
  end
22
20
  end