braze_ruby 0.2.2 → 0.4.1

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 (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