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,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
@@ -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":"<BRAZE_REST_API_KEY>","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 <BRAZE_REST_API_KEY>
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: 201
23
25
  message: Created
24
26
  headers:
27
+ Connection:
28
+ - keep-alive
29
+ Content-Length:
30
+ - '85'
25
31
  Cache-Control:
26
32
  - max-age=0, private, must-revalidate
27
33
  Content-Type:
@@ -34,38 +40,34 @@ http_interactions:
34
40
  - max-age=0; includeSubDomains
35
41
  - max-age=31536000; includeSubDomains
36
42
  X-Ratelimit-Limit:
37
- - '50000'
43
+ - '250000'
38
44
  X-Ratelimit-Remaining:
39
- - '50000'
45
+ - '250000'
40
46
  X-Ratelimit-Reset:
41
- - '1524002400'
47
+ - '1592427600'
42
48
  X-Request-Id:
43
- - af452a7f-9be9-417d-b9d5-2c4db3de274d
49
+ - 2e7a73fc-7efe-4c04-b837-c696cb10735a
44
50
  X-Runtime:
45
- - '0.020310'
46
- Content-Length:
47
- - '85'
51
+ - '0.007710'
48
52
  Accept-Ranges:
49
53
  - bytes
50
54
  Date:
51
- - Tue, 17 Apr 2018 21:08:07 GMT
55
+ - Wed, 17 Jun 2020 20:31:42 GMT
52
56
  Via:
53
57
  - 1.1 varnish
54
- Connection:
55
- - keep-alive
56
58
  X-Served-By:
57
- - cache-pdk17837-PDK
59
+ - cache-hhn4030-HHN
58
60
  X-Cache:
59
61
  - MISS
60
62
  X-Cache-Hits:
61
63
  - '0'
62
64
  X-Timer:
63
- - S1523999287.293178,VS0,VE220
65
+ - S1592425903.632582,VS0,VE10
64
66
  Vary:
65
- - Accept-Encoding
67
+ - Origin,Accept-Encoding
66
68
  body:
67
69
  encoding: ASCII-8BIT
68
70
  string: '{"attributes_processed":1,"events_processed":1,"purchases_processed":1,"message":"success"}'
69
71
  http_version:
70
- recorded_at: Tue, 17 Apr 2018 21:08:07 GMT
71
- recorded_with: VCR 4.0.0
72
+ recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
73
+ 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":"<BRAZE_REST_API_KEY>","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 <BRAZE_REST_API_KEY>
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: 201
23
25
  message: Created
24
26
  headers:
27
+ Connection:
28
+ - keep-alive
29
+ Content-Length:
30
+ - '85'
25
31
  Cache-Control:
26
32
  - max-age=0, private, must-revalidate
27
33
  Content-Type:
@@ -34,38 +40,34 @@ http_interactions:
34
40
  - max-age=0; includeSubDomains
35
41
  - max-age=31536000; includeSubDomains
36
42
  X-Ratelimit-Limit:
37
- - '50000'
43
+ - '250000'
38
44
  X-Ratelimit-Remaining:
39
- - '50000'
45
+ - '250000'
40
46
  X-Ratelimit-Reset:
41
- - '1524002400'
47
+ - '1592427600'
42
48
  X-Request-Id:
43
- - e810e390-4c31-49ac-abd4-5b1151cc3c33
49
+ - 75dc3ac0-d4d2-4278-89d0-b29e540dc719
44
50
  X-Runtime:
45
- - '0.012176'
46
- Content-Length:
47
- - '85'
51
+ - '0.008741'
48
52
  Accept-Ranges:
49
53
  - bytes
50
54
  Date:
51
- - Tue, 17 Apr 2018 21:08:07 GMT
55
+ - Wed, 17 Jun 2020 20:31:42 GMT
52
56
  Via:
53
57
  - 1.1 varnish
54
- Connection:
55
- - keep-alive
56
58
  X-Served-By:
57
- - cache-pdk17824-PDK
59
+ - cache-hhn4063-HHN
58
60
  X-Cache:
59
61
  - MISS
60
62
  X-Cache-Hits:
61
63
  - '0'
62
64
  X-Timer:
63
- - S1523999288.612820,VS0,VE214
65
+ - S1592425903.749169,VS0,VE11
64
66
  Vary:
65
- - Accept-Encoding
67
+ - Origin,Accept-Encoding
66
68
  body:
67
69
  encoding: ASCII-8BIT
68
70
  string: '{"attributes_processed":1,"events_processed":1,"purchases_processed":1,"message":"success"}'
69
71
  http_version:
70
- recorded_at: Tue, 17 Apr 2018 21:08:07 GMT
71
- recorded_with: VCR 4.0.0
72
+ recorded_at: Wed, 17 Jun 2020 20:31:42 GMT
73
+ recorded_with: VCR 5.0.0