braze_ruby 0.2.1 → 0.4.0

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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +30 -0
  3. data/.gitignore +1 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +39 -39
  6. data/README.md +48 -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 +12 -4
  11. data/lib/braze_ruby/deprecated.rb +2 -0
  12. data/lib/braze_ruby/endpoints.rb +3 -0
  13. data/lib/braze_ruby/endpoints/campaigns.rb +3 -1
  14. data/lib/braze_ruby/endpoints/canvas.rb +15 -0
  15. data/lib/braze_ruby/endpoints/delete_users.rb +4 -2
  16. data/lib/braze_ruby/endpoints/email_status.rb +3 -1
  17. data/lib/braze_ruby/endpoints/email_sync.rb +4 -2
  18. data/lib/braze_ruby/endpoints/identify_users.rb +19 -0
  19. data/lib/braze_ruby/endpoints/schedule_messages.rb +3 -1
  20. data/lib/braze_ruby/endpoints/send_messages.rb +3 -1
  21. data/lib/braze_ruby/endpoints/subscription.rb +20 -0
  22. data/lib/braze_ruby/endpoints/track_users.rb +7 -5
  23. data/lib/braze_ruby/http.rb +20 -5
  24. data/lib/braze_ruby/rest.rb +8 -0
  25. data/lib/braze_ruby/rest/base.rb +6 -2
  26. data/lib/braze_ruby/rest/canvas_details.rb +20 -0
  27. data/lib/braze_ruby/rest/delete_users.rb +3 -2
  28. data/lib/braze_ruby/rest/email_hard_bounces.rb +5 -5
  29. data/lib/braze_ruby/rest/email_status.rb +5 -5
  30. data/lib/braze_ruby/rest/email_unsubscribes.rb +5 -5
  31. data/lib/braze_ruby/rest/export_users.rb +7 -7
  32. data/lib/braze_ruby/rest/identify_users.rb +13 -0
  33. data/lib/braze_ruby/rest/list_segments.rb +4 -4
  34. data/lib/braze_ruby/rest/schedule_messages.rb +5 -5
  35. data/lib/braze_ruby/rest/send_messages.rb +5 -5
  36. data/lib/braze_ruby/rest/subscription_status_get.rb +20 -0
  37. data/lib/braze_ruby/rest/subscription_status_set.rb +20 -0
  38. data/lib/braze_ruby/rest/subscription_user_status.rb +20 -0
  39. data/lib/braze_ruby/rest/track_users.rb +3 -2
  40. data/lib/braze_ruby/rest/trigger_campaign_send.rb +6 -8
  41. data/lib/braze_ruby/rest/trigger_canvas_send.rb +20 -0
  42. data/lib/braze_ruby/version.rb +3 -1
  43. data/spec/braze_ruby/api_spec.rb +2 -0
  44. data/spec/braze_ruby/endpoints/delete_users_spec.rb +3 -1
  45. data/spec/braze_ruby/endpoints/track_users_spec.rb +10 -8
  46. data/spec/braze_ruby/http_spec.rb +48 -0
  47. data/spec/braze_ruby/rest/delete_users_spec.rb +5 -3
  48. data/spec/braze_ruby/rest/email_status_spec.rb +3 -2
  49. data/spec/braze_ruby/rest/export_users_spec.rb +5 -3
  50. data/spec/braze_ruby/rest/identify_users_spec.rb +23 -0
  51. data/spec/braze_ruby/rest/schedule_messages_spec.rb +3 -2
  52. data/spec/braze_ruby/rest/send_messages_spec.rb +10 -13
  53. data/spec/braze_ruby/rest/track_users_spec.rb +12 -9
  54. data/spec/factories.rb +2 -0
  55. data/spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml +17 -15
  56. data/spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml +69 -0
  57. data/spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml +71 -0
  58. data/spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml +20 -18
  59. data/spec/fixtures/responses/delete_users/with_success/responds_with_created.yml +25 -23
  60. data/spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml +25 -23
  61. data/spec/fixtures/responses/email_status/existing_email/responds_with_created.yml +22 -20
  62. data/spec/fixtures/responses/email_status/existing_email/responds_with_success_message.yml +22 -20
  63. data/spec/fixtures/responses/email_status/unknown_email/responds_with_bad_request.yml +22 -20
  64. data/spec/fixtures/responses/email_status/unknown_email/responds_with_success_message.yml +22 -20
  65. data/spec/fixtures/responses/email_sync/hard_bounces/responds_with_empty_array_when_no_hard_bounces.yml +18 -16
  66. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_empty_array_when_no_unsubscribes.yml +18 -16
  67. data/spec/fixtures/responses/email_sync/unsubscribes/responds_with_unsubscribed_emails.yml +21 -20
  68. data/spec/fixtures/responses/export_users/by_ids/with_success/responds_with_created.yml +25 -22
  69. data/spec/fixtures/responses/export_users/by_segment/with_success/responds_with_created.yml +24 -22
  70. data/spec/fixtures/responses/identify_users/unauthorized/responds_with_unauthorized.yml +68 -0
  71. data/spec/fixtures/responses/identify_users/with_success/responds_with_created.yml +71 -0
  72. data/spec/fixtures/responses/identify_users/with_success/responds_with_success_message.yml +71 -0
  73. data/spec/fixtures/responses/list_segments/with_success/responds_with_a_list_of_segments.yml +35 -35
  74. data/spec/fixtures/responses/list_segments/with_success/responds_with_success.yml +35 -35
  75. data/spec/fixtures/responses/schedule_messages/unauthorized/responds_with_unauthorize.yml +20 -19
  76. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_created.yml +24 -23
  77. data/spec/fixtures/responses/schedule_messages/with_success/responds_with_success_message.yml +24 -23
  78. data/spec/fixtures/responses/send_messages/unauthorized/responds_with_unauthorized.yml +20 -18
  79. data/spec/fixtures/responses/send_messages/with_success/responds_with_created.yml +24 -22
  80. data/spec/fixtures/responses/send_messages/with_success/responds_with_success_message.yml +24 -22
  81. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscribing/subscribes_the_user.yml +71 -0
  82. data/spec/fixtures/responses/subscription/subscription_status_set/when_subscription_group_does_not_exist/returns_an_error_status.yml +68 -0
  83. data/spec/fixtures/responses/subscription/subscription_status_set/when_unsubscribing/unsubscribes_the_user.yml +139 -0
  84. 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
  85. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_status_get/when_group_does_not_exist/returns_an_error.yml +199 -0
  86. data/spec/fixtures/responses/subscription/when_getting_subscription_group_statuses/subscription_user_status/returns_subscription_groups_and_status_for_every_group.yml +211 -0
  87. data/spec/fixtures/responses/track_users/unauthorized/responds_with_unauthorized.yml +23 -21
  88. data/spec/fixtures/responses/track_users/with_success/responds_with_created.yml +22 -20
  89. data/spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml +22 -20
  90. data/spec/integrations/campaigns_spec.rb +6 -2
  91. data/spec/integrations/canvas_spec.rb +28 -0
  92. data/spec/integrations/delete_users_spec.rb +3 -0
  93. data/spec/integrations/email_status_spec.rb +2 -0
  94. data/spec/integrations/email_sync_spec.rb +4 -2
  95. data/spec/integrations/export_users_spec.rb +4 -2
  96. data/spec/integrations/identify_users_spec.rb +32 -0
  97. data/spec/integrations/list_segments_spec.rb +3 -1
  98. data/spec/integrations/schedule_messages_spec.rb +4 -1
  99. data/spec/integrations/send_messages_spec.rb +4 -1
  100. data/spec/integrations/subscription_spec.rb +149 -0
  101. data/spec/integrations/track_users_spec.rb +3 -0
  102. data/spec/spec_helper.rb +2 -8
  103. data/spec/support/factory_bot.rb +2 -0
  104. data/spec/support/integrations.rb +7 -1
  105. data/spec/support/vcr.rb +5 -1
  106. metadata +63 -21
@@ -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
@@ -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
+ - '249995'
44
+ X-Ratelimit-Reset:
45
+ - '1592478000'
46
+ X-Request-Id:
47
+ - 3c0417c1-397b-4f71-b60c-c2a2082a435a
48
+ X-Runtime:
49
+ - '0.012552'
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-hhn4023-HHN
58
+ X-Cache:
59
+ - MISS
60
+ X-Cache-Hits:
61
+ - '0'
62
+ X-Timer:
63
+ - S1592474586.184983,VS0,VE16
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
+ - '249994'
112
+ X-Ratelimit-Reset:
113
+ - '1592478000'
114
+ X-Request-Id:
115
+ - b49b0519-bb0a-4e16-b9c0-9d5af6fee340
116
+ X-Runtime:
117
+ - '0.012962'
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-hhn4057-HHN
126
+ X-Cache:
127
+ - MISS
128
+ X-Cache-Hits:
129
+ - '0'
130
+ X-Timer:
131
+ - S1592474586.279449,VS0,VE16
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/user/status?external_id%5B%5D=test-user-1&external_id%5B%5D=test-user-2&external_id%5B%5D=test-user-3"
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
+ Content-Length:
164
+ - '233'
165
+ Cache-Control:
166
+ - max-age=0, private, must-revalidate
167
+ Content-Type:
168
+ - application/json
169
+ Etag:
170
+ - W/"73587e244e20caff598bc8613a738936"
171
+ Server:
172
+ - nginx
173
+ Strict-Transport-Security:
174
+ - max-age=0; includeSubDomains
175
+ - max-age=31536000; includeSubDomains
176
+ X-Ratelimit-Limit:
177
+ - '250000'
178
+ X-Ratelimit-Remaining:
179
+ - '249993'
180
+ X-Ratelimit-Reset:
181
+ - '1592478000'
182
+ X-Request-Id:
183
+ - 2c909898-af08-4996-b063-cccd07cbee21
184
+ X-Runtime:
185
+ - '0.291483'
186
+ Accept-Ranges:
187
+ - bytes
188
+ - bytes
189
+ Age:
190
+ - '0'
191
+ - '0'
192
+ Date:
193
+ - Thu, 18 Jun 2020 10:03:06 GMT
194
+ Via:
195
+ - 1.1 varnish
196
+ X-Served-By:
197
+ - cache-hhn4039-HHN
198
+ X-Cache:
199
+ - MISS
200
+ X-Cache-Hits:
201
+ - '0'
202
+ X-Timer:
203
+ - S1592474586.385788,VS0,VE300
204
+ Vary:
205
+ - Origin,Accept-Encoding
206
+ body:
207
+ encoding: ASCII-8BIT
208
+ string: '{"users":[{"email":"test-user-1@test.com","phone":null,"external_id":"test-user-1","subscription_groups":[{"id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","name":"test-subscription-group","channel":"email","status":"Subscribed"}]},{"email":"test-user-2@test.com","phone":null,"external_id":"test-user-2","subscription_groups":[{"id":"ed06e19a-69b1-4f9b-a452-2db2c4e303a8","name":"test-subscription-group","channel":"email","status":"Unsubscribed"}]},{"email":"test-user-3@test.com","phone":null,"external_id":"test-user-3","subscription_groups":[]}],"total_count":3,"message":"success"}'
209
+ http_version:
210
+ recorded_at: Thu, 18 Jun 2020 10:03:06 GMT
211
+ recorded_with: VCR 5.0.0
@@ -5,23 +5,29 @@ http_interactions:
5
5
  uri: "<BRAZE_REST_URL>/users/track"
6
6
  body:
7
7
  encoding: UTF-8
8
- string: '{"api_key":"non-existent","attributes":[{"external_id":1,"foo":"bar"}],"events":[{"external_id":1,"name":"baz","time":"2019-02-15
8
+ string: '{"attributes":[{"external_id":1,"foo":"bar"}],"events":[{"external_id":1,"name":"baz","time":"2019-02-15
9
9
  00:00:00 -0500"}],"purchases":[{"external_id":1,"product_id":1,"time":"2019-02-15
10
10
  00:00:00 -0500","currency":"CAD","price":1.0}]}'
11
11
  headers:
12
- User-Agent:
13
- - Faraday v0.14.0
14
12
  Content-Type:
15
13
  - application/json
14
+ Accept:
15
+ - application/json
16
+ User-Agent:
17
+ - Braze Ruby gem v0.3.3
18
+ Authorization:
19
+ - Bearer non-existent
16
20
  Accept-Encoding:
17
21
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
- Accept:
19
- - "*/*"
20
22
  response:
21
23
  status:
22
24
  code: 401
23
25
  message: Unauthorized
24
26
  headers:
27
+ Connection:
28
+ - keep-alive
29
+ Content-Length:
30
+ - '69'
25
31
  Cache-Control:
26
32
  - no-cache
27
33
  Content-Type:
@@ -31,38 +37,34 @@ http_interactions:
31
37
  Strict-Transport-Security:
32
38
  - max-age=0; includeSubDomains
33
39
  X-Ratelimit-Limit:
34
- - '0'
40
+ - ''
35
41
  X-Ratelimit-Remaining:
36
- - '0'
42
+ - ''
37
43
  X-Ratelimit-Reset:
38
- - '1524002400'
44
+ - ''
39
45
  X-Request-Id:
40
- - 7089825e-0390-4b95-b471-3c096e1df0e6
46
+ - 455108aa-0cf4-438f-8d27-489896ca716b
41
47
  X-Runtime:
42
- - '0.006623'
43
- Content-Length:
44
- - '85'
48
+ - '0.001106'
45
49
  Accept-Ranges:
46
50
  - bytes
47
51
  Date:
48
- - Tue, 17 Apr 2018 21:08:08 GMT
52
+ - Wed, 17 Jun 2020 20:31:42 GMT
49
53
  Via:
50
54
  - 1.1 varnish
51
- Connection:
52
- - keep-alive
53
55
  X-Served-By:
54
- - cache-pdk17844-PDK
56
+ - cache-hhn4044-HHN
55
57
  X-Cache:
56
58
  - MISS
57
59
  X-Cache-Hits:
58
60
  - '0'
59
61
  X-Timer:
60
- - S1523999288.903112,VS0,VE193
62
+ - S1592425903.848710,VS0,VE4
61
63
  Vary:
62
- - Accept-Encoding
64
+ - Origin,Accept-Encoding
63
65
  body:
64
66
  encoding: ASCII-8BIT
65
- string: '{"message":"Invalid App Group API Identifier: non-existent"}'
67
+ string: '{"message":"Invalid API key: non-existent"}'
66
68
  http_version:
67
- recorded_at: Tue, 17 Apr 2018 21:08:08 GMT
68
- recorded_with: VCR 4.0.0
69
+ recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
70
+ recorded_with: VCR 5.0.0