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
@@ -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,16 @@ 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
14
 
15
15
  def subscription_user_status(**payload)
16
- BrazeRuby::REST::SubscriptionUserStatus.new(api_key, braze_url, payload).perform
16
+ BrazeRuby::REST::SubscriptionUserStatus.new(api_key, braze_url, options, **payload).perform
17
17
  end
18
18
  end
19
19
  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
@@ -5,8 +5,12 @@ 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
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
@@ -16,3 +16,7 @@ require 'braze_ruby/rest/canvas_details'
16
16
  require 'braze_ruby/rest/subscription_status_set'
17
17
  require 'braze_ruby/rest/subscription_status_get'
18
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'
@@ -7,14 +7,16 @@ module BrazeRuby
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
14
  http.get('/canvas/details', {
16
- 'api_key': api_key,
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,9 +3,8 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class DeleteUsers < Base
6
- def perform(api_key, external_ids: [])
6
+ def perform(external_ids: [])
7
7
  http.post '/users/delete', {
8
- 'api_key': api_key,
9
8
  'external_ids': external_ids
10
9
  }
11
10
  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
14
  http.get('/email/hard_bounces', {
16
- 'api_key': api_key,
17
15
  **@params
18
16
  })
19
17
  end
@@ -3,18 +3,16 @@
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
15
  http.post '/email/status', {
17
- 'api_key': api_key,
18
16
  'email': email,
19
17
  'subscription_state': status
20
18
  }
@@ -3,17 +3,15 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class EmailUnsubscribes < 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
14
  http.get('/email/unsubscribes', {
16
- 'api_key': api_key,
17
15
  **params
18
16
  })
19
17
  end
@@ -3,24 +3,22 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class ExportUsers < Base
6
- def perform(api_key, external_ids: nil, segment_id: nil, **options)
7
- return export_users_by_ids(api_key, external_ids) if external_ids
6
+ def perform(external_ids: nil, segment_id: nil, **options)
7
+ return export_users_by_ids(external_ids) if external_ids
8
8
 
9
- export_users_by_segment(api_key, segment_id, options) if segment_id
9
+ export_users_by_segment(segment_id, options) if segment_id
10
10
  end
11
11
 
12
12
  private
13
13
 
14
- def export_users_by_ids(api_key, external_ids)
14
+ def export_users_by_ids(external_ids)
15
15
  http.post '/users/export/ids', {
16
- 'api_key': api_key,
17
16
  'external_ids': external_ids
18
17
  }
19
18
  end
20
19
 
21
- def export_users_by_segment(api_key, segment_id, options)
20
+ def export_users_by_segment(segment_id, options)
22
21
  http.post '/users/export/segment', {
23
- 'api_key': api_key,
24
22
  'segment_id': segment_id
25
23
  }.merge(options)
26
24
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class IdentifyUsers < Base
6
+ def perform(aliases_to_identify: [])
7
+ http.post '/users/identify', {
8
+ 'aliases_to_identify': aliases_to_identify
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -3,10 +3,8 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class ListSegments < Base
6
- def perform(api_key)
7
- http.get '/segments/list', {
8
- 'api_key': api_key
9
- }
6
+ def perform
7
+ http.get '/segments/list'
10
8
  end
11
9
  end
12
10
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class RemoveExternalIds < Base
6
+ def perform(external_ids: [])
7
+ http.post '/users/external_ids/remove', {
8
+ 'external_ids': external_ids
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BrazeRuby
4
+ module REST
5
+ class RenameExternalIds < Base
6
+ def perform(external_id_renames: [])
7
+ http.post '/users/external_ids/rename', {
8
+ 'external_id_renames': external_id_renames
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
@@ -3,20 +3,18 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class ScheduleMessages < Base
6
- attr_reader :api_key, :time, :messages, :in_local_time, :external_user_ids
6
+ attr_reader :time, :messages, :in_local_time, :external_user_ids
7
7
 
8
- def initialize(api_key, braze_url, time: nil, messages: [], external_user_ids: [], in_local_time: false)
9
- @api_key = api_key
8
+ def initialize(api_key, braze_url, options, time: nil, messages: [], external_user_ids: [], in_local_time: false)
10
9
  @messages = messages
11
10
  @time = time
12
11
  @external_user_ids = external_user_ids
13
12
  @in_local_time = in_local_time
14
- super braze_url
13
+ super api_key, braze_url, options
15
14
  end
16
15
 
17
16
  def perform
18
17
  http.post '/messages/schedule/create', {
19
- 'api_key': api_key,
20
18
  'external_user_ids': external_user_ids,
21
19
  'schedule': {
22
20
  'time': time,
@@ -3,18 +3,16 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class SendMessages < Base
6
- attr_reader :api_key, :messages, :external_user_ids
6
+ attr_reader :messages, :external_user_ids
7
7
 
8
- def initialize(api_key, braze_url, messages: [], external_user_ids: [])
9
- @api_key = api_key
8
+ def initialize(api_key, braze_url, options, messages: [], external_user_ids: [])
10
9
  @messages = messages
11
10
  @external_user_ids = external_user_ids
12
- super braze_url
11
+ super api_key, braze_url, options
13
12
  end
14
13
 
15
14
  def perform
16
15
  http.post '/messages/send', {
17
- 'api_key': api_key,
18
16
  'messages': messages,
19
17
  'external_user_ids': external_user_ids
20
18
  }
@@ -3,17 +3,15 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class SubscriptionStatusGet < 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
14
  http.get('/subscription/status/get', {
16
- 'api_key': api_key,
17
15
  **params
18
16
  })
19
17
  end
@@ -3,17 +3,15 @@
3
3
  module BrazeRuby
4
4
  module REST
5
5
  class SubscriptionStatusSet < 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
14
  http.post('/subscription/status/set', {
16
- 'api_key': api_key,
17
15
  **params
18
16
  })
19
17
  end