braze_ruby 0.2.2 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +14 -3
  3. data/.gitignore +1 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +39 -39
  6. data/README.md +64 -0
  7. data/Rakefile +2 -0
  8. data/braze_ruby.gemspec +7 -7
  9. data/lib/braze_ruby.rb +2 -0
  10. data/lib/braze_ruby/api.rb +11 -4
  11. data/lib/braze_ruby/deprecated.rb +2 -0
  12. data/lib/braze_ruby/endpoints.rb +4 -0
  13. data/lib/braze_ruby/endpoints/campaigns.rb +3 -1
  14. data/lib/braze_ruby/endpoints/canvas.rb +7 -1
  15. data/lib/braze_ruby/endpoints/create_user_aliases.rb +19 -0
  16. data/lib/braze_ruby/endpoints/delete_users.rb +4 -2
  17. data/lib/braze_ruby/endpoints/email_status.rb +3 -1
  18. data/lib/braze_ruby/endpoints/email_sync.rb +4 -2
  19. data/lib/braze_ruby/endpoints/identify_users.rb +19 -0
  20. data/lib/braze_ruby/endpoints/schedule_messages.rb +3 -1
  21. data/lib/braze_ruby/endpoints/send_messages.rb +3 -1
  22. data/lib/braze_ruby/endpoints/subscription.rb +20 -0
  23. data/lib/braze_ruby/endpoints/track_users.rb +7 -5
  24. data/lib/braze_ruby/http.rb +20 -5
  25. data/lib/braze_ruby/rest.rb +8 -0
  26. data/lib/braze_ruby/rest/base.rb +6 -2
  27. data/lib/braze_ruby/rest/canvas_details.rb +20 -0
  28. data/lib/braze_ruby/rest/create_user_aliases.rb +13 -0
  29. data/lib/braze_ruby/rest/delete_users.rb +3 -2
  30. data/lib/braze_ruby/rest/email_hard_bounces.rb +5 -5
  31. data/lib/braze_ruby/rest/email_status.rb +5 -5
  32. data/lib/braze_ruby/rest/email_unsubscribes.rb +5 -5
  33. data/lib/braze_ruby/rest/export_users.rb +7 -7
  34. data/lib/braze_ruby/rest/identify_users.rb +13 -0
  35. data/lib/braze_ruby/rest/list_segments.rb +4 -4
  36. data/lib/braze_ruby/rest/schedule_messages.rb +5 -5
  37. data/lib/braze_ruby/rest/send_messages.rb +5 -5
  38. data/lib/braze_ruby/rest/subscription_status_get.rb +20 -0
  39. data/lib/braze_ruby/rest/subscription_status_set.rb +20 -0
  40. data/lib/braze_ruby/rest/subscription_user_status.rb +20 -0
  41. data/lib/braze_ruby/rest/track_users.rb +3 -2
  42. data/lib/braze_ruby/rest/trigger_campaign_send.rb +6 -8
  43. data/lib/braze_ruby/rest/trigger_canvas_send.rb +5 -5
  44. data/lib/braze_ruby/version.rb +3 -1
  45. data/spec/braze_ruby/api_spec.rb +2 -0
  46. data/spec/braze_ruby/endpoints/delete_users_spec.rb +3 -1
  47. data/spec/braze_ruby/endpoints/track_users_spec.rb +10 -8
  48. data/spec/braze_ruby/http_spec.rb +48 -0
  49. data/spec/braze_ruby/rest/create_user_aliases_spec.rb +23 -0
  50. data/spec/braze_ruby/rest/delete_users_spec.rb +5 -3
  51. data/spec/braze_ruby/rest/email_status_spec.rb +3 -2
  52. data/spec/braze_ruby/rest/export_users_spec.rb +5 -3
  53. data/spec/braze_ruby/rest/identify_users_spec.rb +23 -0
  54. data/spec/braze_ruby/rest/schedule_messages_spec.rb +3 -2
  55. data/spec/braze_ruby/rest/send_messages_spec.rb +10 -13
  56. data/spec/braze_ruby/rest/track_users_spec.rb +12 -9
  57. data/spec/factories.rb +2 -0
  58. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +17 -15
  59. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +69 -0
  60. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +18 -16
  61. data/spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml +67 -0
  62. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml +71 -0
  63. data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml +71 -0
  64. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +20 -18
  65. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +25 -23
  66. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +25 -23
  67. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +22 -20
  68. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +22 -20
  69. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +22 -20
  70. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +22 -20
  71. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +18 -16
  72. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +18 -16
  73. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +21 -20
  74. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +25 -22
  75. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +24 -22
  76. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +68 -0
  77. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +71 -0
  78. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +71 -0
  79. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +35 -35
  80. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +35 -35
  81. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +20 -19
  82. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +24 -23
  83. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +24 -23
  84. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +20 -18
  85. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +24 -22
  86. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +24 -22
  87. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +71 -0
  88. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +68 -0
  89. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +139 -0
  90. 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 +211 -0
  91. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +199 -0
  92. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +211 -0
  93. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +23 -21
  94. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +22 -20
  95. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +22 -20
  96. data/spec/integrations/campaigns_spec.rb +6 -2
  97. data/spec/integrations/canvas_spec.rb +15 -2
  98. data/spec/integrations/create_user_aliases_spec.rb +32 -0
  99. data/spec/integrations/delete_users_spec.rb +3 -0
  100. data/spec/integrations/email_status_spec.rb +2 -0
  101. data/spec/integrations/email_sync_spec.rb +4 -2
  102. data/spec/integrations/export_users_spec.rb +4 -2
  103. data/spec/integrations/identify_users_spec.rb +32 -0
  104. data/spec/integrations/list_segments_spec.rb +3 -1
  105. data/spec/integrations/schedule_messages_spec.rb +4 -1
  106. data/spec/integrations/send_messages_spec.rb +4 -1
  107. data/spec/integrations/subscription_spec.rb +149 -0
  108. data/spec/integrations/track_users_spec.rb +3 -0
  109. data/spec/spec_helper.rb +2 -8
  110. data/spec/support/factory_bot.rb +2 -0
  111. data/spec/support/integrations.rb +7 -1
  112. data/spec/support/vcr.rb +5 -1
  113. metadata +68 -21
@@ -0,0 +1,68 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"external_id":"test-user-1","subscription_group_id":"non-existing-subscription-group","subscription_state":"subscribed"}'
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
+ - '69'
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
+ - '249983'
41
+ X-Ratelimit-Reset:
42
+ - '1592478000'
43
+ X-Request-Id:
44
+ - 1e81ac78-b72f-476a-8259-70f90aa2d170
45
+ X-Runtime:
46
+ - '0.013319'
47
+ Accept-Ranges:
48
+ - bytes
49
+ Date:
50
+ - Thu, 18 Jun 2020 10:03:08 GMT
51
+ Via:
52
+ - 1.1 varnish
53
+ X-Served-By:
54
+ - cache-hhn4038-HHN
55
+ X-Cache:
56
+ - MISS
57
+ X-Cache-Hits:
58
+ - '0'
59
+ X-Timer:
60
+ - S1592474588.160260,VS0,VE16
61
+ Vary:
62
+ - Origin,Accept-Encoding
63
+ body:
64
+ encoding: ASCII-8BIT
65
+ string: '{"message":"Invalid subscription group ID"}'
66
+ http_version:
67
+ recorded_at: Thu, 18 Jun 2020 10:03:08 GMT
68
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,139 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"external_id":"test-user-2","subscription_group_id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","subscription_state":"subscribed"}'
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
+ - '46'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ Content-Type:
32
+ - application/json
33
+ Etag:
34
+ - W/"838a7c62adda8d131d694ae13ba2c5b7"
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
+ - '249985'
44
+ X-Ratelimit-Reset:
45
+ - '1592478000'
46
+ X-Request-Id:
47
+ - d808049c-58d0-413b-84ed-c9976614bc96
48
+ X-Runtime:
49
+ - '0.011481'
50
+ Accept-Ranges:
51
+ - bytes
52
+ Date:
53
+ - Thu, 18 Jun 2020 10:03:07 GMT
54
+ Via:
55
+ - 1.1 varnish
56
+ X-Served-By:
57
+ - cache-hhn4056-HHN
58
+ X-Cache:
59
+ - MISS
60
+ X-Cache-Hits:
61
+ - '0'
62
+ X-Timer:
63
+ - S1592474588.950706,VS0,VE15
64
+ Vary:
65
+ - Origin,Accept-Encoding
66
+ body:
67
+ encoding: ASCII-8BIT
68
+ string: '{"message":"success"}'
69
+ http_version:
70
+ recorded_at: Thu, 18 Jun 2020 10:03:07 GMT
71
+ - request:
72
+ method: post
73
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
74
+ body:
75
+ encoding: UTF-8
76
+ string: '{"external_id":"test-user-2","subscription_group_id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","subscription_state":"unsubscribed"}'
77
+ headers:
78
+ Content-Type:
79
+ - application/json
80
+ Accept:
81
+ - application/json
82
+ User-Agent:
83
+ - Braze Ruby gem v0.3.3
84
+ Authorization:
85
+ - Bearer <BRAZE_REST_API_KEY>
86
+ Accept-Encoding:
87
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
88
+ response:
89
+ status:
90
+ code: 201
91
+ message: Created
92
+ headers:
93
+ Connection:
94
+ - keep-alive
95
+ Content-Length:
96
+ - '46'
97
+ Cache-Control:
98
+ - max-age=0, private, must-revalidate
99
+ Content-Type:
100
+ - application/json
101
+ Etag:
102
+ - W/"838a7c62adda8d131d694ae13ba2c5b7"
103
+ Server:
104
+ - nginx
105
+ Strict-Transport-Security:
106
+ - max-age=0; includeSubDomains
107
+ - max-age=31536000; includeSubDomains
108
+ X-Ratelimit-Limit:
109
+ - '250000'
110
+ X-Ratelimit-Remaining:
111
+ - '249984'
112
+ X-Ratelimit-Reset:
113
+ - '1592478000'
114
+ X-Request-Id:
115
+ - cf4a6c76-ff97-4790-8a24-d0febe4764c4
116
+ X-Runtime:
117
+ - '0.010860'
118
+ Accept-Ranges:
119
+ - bytes
120
+ Date:
121
+ - Thu, 18 Jun 2020 10:03:08 GMT
122
+ Via:
123
+ - 1.1 varnish
124
+ X-Served-By:
125
+ - cache-hhn4056-HHN
126
+ X-Cache:
127
+ - MISS
128
+ X-Cache-Hits:
129
+ - '0'
130
+ X-Timer:
131
+ - S1592474588.057509,VS0,VE14
132
+ Vary:
133
+ - Origin,Accept-Encoding
134
+ body:
135
+ encoding: ASCII-8BIT
136
+ string: '{"message":"success"}'
137
+ http_version:
138
+ recorded_at: Thu, 18 Jun 2020 10:03:08 GMT
139
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,211 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"external_id":"test-user-1","subscription_group_id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","subscription_state":"subscribed"}'
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
+ - '46'
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ Content-Type:
32
+ - application/json
33
+ Etag:
34
+ - W/"838a7c62adda8d131d694ae13ba2c5b7"
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
+ - '249992'
44
+ X-Ratelimit-Reset:
45
+ - '1592478000'
46
+ X-Request-Id:
47
+ - ca3c0d06-56e9-4827-b401-464aeb2770e7
48
+ X-Runtime:
49
+ - '0.009484'
50
+ Accept-Ranges:
51
+ - bytes
52
+ Date:
53
+ - Thu, 18 Jun 2020 10:03:06 GMT
54
+ Via:
55
+ - 1.1 varnish
56
+ X-Served-By:
57
+ - cache-hhn4035-HHN
58
+ X-Cache:
59
+ - MISS
60
+ X-Cache-Hits:
61
+ - '0'
62
+ X-Timer:
63
+ - S1592474587.848648,VS0,VE13
64
+ Vary:
65
+ - Origin,Accept-Encoding
66
+ body:
67
+ encoding: ASCII-8BIT
68
+ string: '{"message":"success"}'
69
+ http_version:
70
+ recorded_at: Thu, 18 Jun 2020 10:03:06 GMT
71
+ - request:
72
+ method: post
73
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
74
+ body:
75
+ encoding: UTF-8
76
+ string: '{"external_id":"test-user-2","subscription_group_id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","subscription_state":"unsubscribed"}'
77
+ headers:
78
+ Content-Type:
79
+ - application/json
80
+ Accept:
81
+ - application/json
82
+ User-Agent:
83
+ - Braze Ruby gem v0.3.3
84
+ Authorization:
85
+ - Bearer <BRAZE_REST_API_KEY>
86
+ Accept-Encoding:
87
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
88
+ response:
89
+ status:
90
+ code: 201
91
+ message: Created
92
+ headers:
93
+ Connection:
94
+ - keep-alive
95
+ Content-Length:
96
+ - '46'
97
+ Cache-Control:
98
+ - max-age=0, private, must-revalidate
99
+ Content-Type:
100
+ - application/json
101
+ Etag:
102
+ - W/"838a7c62adda8d131d694ae13ba2c5b7"
103
+ Server:
104
+ - nginx
105
+ Strict-Transport-Security:
106
+ - max-age=0; includeSubDomains
107
+ - max-age=31536000; includeSubDomains
108
+ X-Ratelimit-Limit:
109
+ - '250000'
110
+ X-Ratelimit-Remaining:
111
+ - '249991'
112
+ X-Ratelimit-Reset:
113
+ - '1592478000'
114
+ X-Request-Id:
115
+ - 619fbe14-57be-4e68-99bc-8dfd519aeb3f
116
+ X-Runtime:
117
+ - '0.016383'
118
+ Accept-Ranges:
119
+ - bytes
120
+ Date:
121
+ - Thu, 18 Jun 2020 10:03:06 GMT
122
+ Via:
123
+ - 1.1 varnish
124
+ X-Served-By:
125
+ - cache-hhn4074-HHN
126
+ X-Cache:
127
+ - MISS
128
+ X-Cache-Hits:
129
+ - '0'
130
+ X-Timer:
131
+ - S1592474587.944065,VS0,VE19
132
+ Vary:
133
+ - Origin,Accept-Encoding
134
+ body:
135
+ encoding: ASCII-8BIT
136
+ string: '{"message":"success"}'
137
+ http_version:
138
+ recorded_at: Thu, 18 Jun 2020 10:03:06 GMT
139
+ - request:
140
+ method: get
141
+ uri: "<BRAZE_REST_URL>/subscription/status/get?external_id%5B%5D=test-user-1&external_id%5B%5D=test-user-2&external_id%5B%5D=test-user-3&subscription_group_id=ed06e19a-69b1-4f9b-a452-2db2c4e303a8"
142
+ body:
143
+ encoding: US-ASCII
144
+ string: ''
145
+ headers:
146
+ Content-Type:
147
+ - application/json
148
+ Accept:
149
+ - application/json
150
+ User-Agent:
151
+ - Braze Ruby gem v0.3.3
152
+ Authorization:
153
+ - Bearer <BRAZE_REST_API_KEY>
154
+ Accept-Encoding:
155
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
156
+ response:
157
+ status:
158
+ code: 200
159
+ message: OK
160
+ headers:
161
+ Connection:
162
+ - keep-alive
163
+ Cache-Control:
164
+ - max-age=0, private, must-revalidate
165
+ Content-Type:
166
+ - application/json
167
+ Etag:
168
+ - W/"1666e6b741dc1b301e4196e3bf59b6ac"
169
+ Server:
170
+ - nginx
171
+ Strict-Transport-Security:
172
+ - max-age=0; includeSubDomains
173
+ - max-age=31536000; includeSubDomains
174
+ X-Ratelimit-Limit:
175
+ - '250000'
176
+ X-Ratelimit-Remaining:
177
+ - '249990'
178
+ X-Ratelimit-Reset:
179
+ - '1592478000'
180
+ X-Request-Id:
181
+ - dec0761d-28e5-4757-abc2-281d20452d12
182
+ X-Runtime:
183
+ - '0.274580'
184
+ Accept-Ranges:
185
+ - bytes
186
+ - bytes
187
+ Age:
188
+ - '0'
189
+ - '0'
190
+ Date:
191
+ - Thu, 18 Jun 2020 10:03:07 GMT
192
+ Via:
193
+ - 1.1 varnish
194
+ X-Served-By:
195
+ - cache-hhn4071-HHN
196
+ X-Cache:
197
+ - MISS
198
+ X-Cache-Hits:
199
+ - '0'
200
+ X-Timer:
201
+ - S1592474587.060881,VS0,VE279
202
+ Vary:
203
+ - Origin,Accept-Encoding
204
+ Transfer-Encoding:
205
+ - chunked
206
+ body:
207
+ encoding: ASCII-8BIT
208
+ string: '{"status":{"test-user-1":"Subscribed","test-user-2":"Unsubscribed","test-user-3":"unknown"},"message":"success"}'
209
+ http_version:
210
+ recorded_at: Thu, 18 Jun 2020 10:03:07 GMT
211
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,199 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"external_id":"test-user-1","subscription_group_id":"non-existing-subscription-group","subscription_state":"subscribed"}'
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
+ - '69'
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
+ - '249989'
41
+ X-Ratelimit-Reset:
42
+ - '1592478000'
43
+ X-Request-Id:
44
+ - a79133bc-a760-4a22-a42f-26dd5961f2f7
45
+ X-Runtime:
46
+ - '0.034508'
47
+ Accept-Ranges:
48
+ - bytes
49
+ Date:
50
+ - Thu, 18 Jun 2020 10:03:07 GMT
51
+ Via:
52
+ - 1.1 varnish
53
+ X-Served-By:
54
+ - cache-hhn4058-HHN
55
+ X-Cache:
56
+ - MISS
57
+ X-Cache-Hits:
58
+ - '0'
59
+ X-Timer:
60
+ - S1592474587.426453,VS0,VE37
61
+ Vary:
62
+ - Origin,Accept-Encoding
63
+ body:
64
+ encoding: ASCII-8BIT
65
+ string: '{"message":"Invalid subscription group ID"}'
66
+ http_version:
67
+ recorded_at: Thu, 18 Jun 2020 10:03:07 GMT
68
+ - request:
69
+ method: post
70
+ uri: "<BRAZE_REST_URL>/subscription/status/set"
71
+ body:
72
+ encoding: UTF-8
73
+ string: '{"external_id":"test-user-2","subscription_group_id":"non-existing-subscription-group","subscription_state":"unsubscribed"}'
74
+ headers:
75
+ Content-Type:
76
+ - application/json
77
+ Accept:
78
+ - application/json
79
+ User-Agent:
80
+ - Braze Ruby gem v0.3.3
81
+ Authorization:
82
+ - Bearer <BRAZE_REST_API_KEY>
83
+ Accept-Encoding:
84
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
85
+ response:
86
+ status:
87
+ code: 400
88
+ message: Bad Request
89
+ headers:
90
+ Connection:
91
+ - keep-alive
92
+ Content-Length:
93
+ - '69'
94
+ Cache-Control:
95
+ - no-cache
96
+ Content-Type:
97
+ - application/json
98
+ Server:
99
+ - nginx
100
+ Strict-Transport-Security:
101
+ - max-age=0; includeSubDomains
102
+ X-Ratelimit-Limit:
103
+ - '250000'
104
+ X-Ratelimit-Remaining:
105
+ - '249988'
106
+ X-Ratelimit-Reset:
107
+ - '1592478000'
108
+ X-Request-Id:
109
+ - 264b0fb1-5574-40fa-ad46-e6866e1694d6
110
+ X-Runtime:
111
+ - '0.058967'
112
+ Accept-Ranges:
113
+ - bytes
114
+ Date:
115
+ - Thu, 18 Jun 2020 10:03:07 GMT
116
+ Via:
117
+ - 1.1 varnish
118
+ X-Served-By:
119
+ - cache-hhn4040-HHN
120
+ X-Cache:
121
+ - MISS
122
+ X-Cache-Hits:
123
+ - '0'
124
+ X-Timer:
125
+ - S1592474588.556657,VS0,VE62
126
+ Vary:
127
+ - Origin,Accept-Encoding
128
+ body:
129
+ encoding: ASCII-8BIT
130
+ string: '{"message":"Invalid subscription group ID"}'
131
+ http_version:
132
+ recorded_at: Thu, 18 Jun 2020 10:03:07 GMT
133
+ - request:
134
+ method: get
135
+ uri: "<BRAZE_REST_URL>/subscription/status/get?external_id=test-user-1&subscription_group_id=non-existing-subscription-group"
136
+ body:
137
+ encoding: US-ASCII
138
+ string: ''
139
+ headers:
140
+ Content-Type:
141
+ - application/json
142
+ Accept:
143
+ - application/json
144
+ User-Agent:
145
+ - Braze Ruby gem v0.3.3
146
+ Authorization:
147
+ - Bearer <BRAZE_REST_API_KEY>
148
+ Accept-Encoding:
149
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
150
+ response:
151
+ status:
152
+ code: 400
153
+ message: Bad Request
154
+ headers:
155
+ Connection:
156
+ - keep-alive
157
+ Content-Length:
158
+ - '69'
159
+ Cache-Control:
160
+ - no-cache
161
+ Content-Type:
162
+ - application/json
163
+ Server:
164
+ - nginx
165
+ Strict-Transport-Security:
166
+ - max-age=0; includeSubDomains
167
+ X-Ratelimit-Limit:
168
+ - '250000'
169
+ X-Ratelimit-Remaining:
170
+ - '249987'
171
+ X-Ratelimit-Reset:
172
+ - '1592478000'
173
+ X-Request-Id:
174
+ - a22e0245-a827-48c5-9525-22e54a820782
175
+ X-Runtime:
176
+ - '0.023071'
177
+ Accept-Ranges:
178
+ - bytes
179
+ - bytes
180
+ Date:
181
+ - Thu, 18 Jun 2020 10:03:07 GMT
182
+ Via:
183
+ - 1.1 varnish
184
+ X-Served-By:
185
+ - cache-hhn4072-HHN
186
+ X-Cache:
187
+ - MISS
188
+ X-Cache-Hits:
189
+ - '0'
190
+ X-Timer:
191
+ - S1592474588.708248,VS0,VE27
192
+ Vary:
193
+ - Origin,Accept-Encoding
194
+ body:
195
+ encoding: ASCII-8BIT
196
+ string: '{"message":"Invalid subscription group ID"}'
197
+ http_version:
198
+ recorded_at: Thu, 18 Jun 2020 10:03:07 GMT
199
+ recorded_with: VCR 5.0.0