braze_ruby 0.4.0 → 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.
- checksums.yaml +4 -4
- data/README.md +26 -1
- data/lib/braze_ruby/api.rb +1 -0
- data/lib/braze_ruby/endpoints.rb +1 -0
- data/lib/braze_ruby/endpoints/create_user_aliases.rb +19 -0
- data/lib/braze_ruby/rest.rb +1 -0
- data/lib/braze_ruby/rest/create_user_aliases.rb +13 -0
- data/lib/braze_ruby/version.rb +1 -1
- data/spec/braze_ruby/rest/create_user_aliases_spec.rb +23 -0
- data/spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml +67 -0
- data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml +71 -0
- data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml +71 -0
- data/spec/integrations/create_user_aliases_spec.rb +32 -0
- metadata +15 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ef227d9be43770703ff994bcda610a34666b8057c5846f270391ee2a0dfd957
|
4
|
+
data.tar.gz: 866befd357481f0cef4a18b761bb69ce66bfa098af871ee768ef4a8b575c944d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bd262c112d84b59dcefe528def47fd7a299715500e032ce0bbb8d3e6cb45fb226aad2c4f2a2f94c202b18efeae0f608c9984e999bb06549b720fedddba0d533
|
7
|
+
data.tar.gz: 050c09bd0ea3d5b3d5bb7b34f869f9053e628e28e6f192e4b072eb7f3242ed1980f8484dce32708ab1b7cf21fc045318c962b75bc5ac5ae9a75b136b1e3a2b78
|
data/README.md
CHANGED
@@ -187,7 +187,20 @@ api.subscription_status_set(
|
|
187
187
|
)
|
188
188
|
```
|
189
189
|
|
190
|
-
### User
|
190
|
+
### User Alias
|
191
|
+
|
192
|
+
#### Create an alias-only user
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
api.create_user_aliases(
|
196
|
+
user_aliases: [{
|
197
|
+
user_alias: {
|
198
|
+
alias_name: "device123",
|
199
|
+
alias_label: "my_device_identifier",
|
200
|
+
}
|
201
|
+
}]
|
202
|
+
)
|
203
|
+
```
|
191
204
|
|
192
205
|
#### Identify an alias-only user
|
193
206
|
```ruby
|
@@ -202,6 +215,18 @@ api.identify_users(
|
|
202
215
|
)
|
203
216
|
```
|
204
217
|
|
218
|
+
### Email Sync
|
219
|
+
|
220
|
+
#### Get List of or Query Email Unsubscribes
|
221
|
+
```ruby
|
222
|
+
api.email_unsubscribes(email: ['jdoe@example.com'])
|
223
|
+
```
|
224
|
+
|
225
|
+
#### Get List of or Query Hard Bounced Emails
|
226
|
+
```ruby
|
227
|
+
api.email_hard_bounces(email: ['jdoe@example.com'])
|
228
|
+
```
|
229
|
+
|
205
230
|
## Debugging
|
206
231
|
|
207
232
|
The BRAZE_RUBY_DEBUG environment variable will trigger full printouts of the Faraday gem's HTTP requests and responses.
|
data/lib/braze_ruby/api.rb
CHANGED
@@ -25,6 +25,7 @@ module BrazeRuby
|
|
25
25
|
include BrazeRuby::Endpoints::Canvas
|
26
26
|
include BrazeRuby::Endpoints::Subscription
|
27
27
|
include BrazeRuby::Endpoints::IdentifyUsers
|
28
|
+
include BrazeRuby::Endpoints::CreateUserAliases
|
28
29
|
|
29
30
|
def export_users(**payload)
|
30
31
|
BrazeRuby::REST::ExportUsers.new(api_key, braze_url, options).perform(**payload)
|
data/lib/braze_ruby/endpoints.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BrazeRuby
|
4
|
+
module Endpoints
|
5
|
+
module CreateUserAliases
|
6
|
+
attr_writer :create_user_aliases_service
|
7
|
+
|
8
|
+
def create_user_aliases(**payload)
|
9
|
+
create_user_aliases_service.perform(**payload)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def create_user_aliases_service
|
15
|
+
@create_user_aliases_service ||= BrazeRuby::REST::CreateUserAliases.new(api_key, braze_url, options)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/braze_ruby/rest.rb
CHANGED
data/lib/braze_ruby/version.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe BrazeRuby::REST::CreateUserAliases do
|
6
|
+
let(:http) { double(:http) }
|
7
|
+
|
8
|
+
let(:payload) { {user_aliases: [user]} }
|
9
|
+
let(:user) { { user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
|
10
|
+
|
11
|
+
let(:api_key) { :api_key }
|
12
|
+
|
13
|
+
subject { described_class.new :api_key, :rest_url, {}}
|
14
|
+
|
15
|
+
before { subject.http = http }
|
16
|
+
|
17
|
+
it 'makes an http call to the user aliases endpoint' do
|
18
|
+
expect(http).to receive(:post).with '/users/alias/new',
|
19
|
+
payload
|
20
|
+
|
21
|
+
subject.perform(**payload)
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: "<BRAZE_REST_URL>/users/alias/new"
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"user_aliases":[{"user_alias":{"alias_name":"abc","alias_label":"foo"}}]}'
|
9
|
+
headers:
|
10
|
+
Content-Type:
|
11
|
+
- application/json
|
12
|
+
Accept:
|
13
|
+
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- Braze Ruby gem v0.4.0
|
16
|
+
Authorization:
|
17
|
+
- Bearer non-existent
|
18
|
+
Accept-Encoding:
|
19
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
20
|
+
response:
|
21
|
+
status:
|
22
|
+
code: 401
|
23
|
+
message: Unauthorized
|
24
|
+
headers:
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Content-Type:
|
28
|
+
- application/json
|
29
|
+
Server:
|
30
|
+
- nginx
|
31
|
+
X-Ratelimit-Limit:
|
32
|
+
- ''
|
33
|
+
X-Ratelimit-Remaining:
|
34
|
+
- ''
|
35
|
+
X-Ratelimit-Reset:
|
36
|
+
- ''
|
37
|
+
Cache-Control:
|
38
|
+
- no-cache
|
39
|
+
X-Request-Id:
|
40
|
+
- 238c0308-346b-4b59-9b2a-c91bfb3c9926
|
41
|
+
X-Runtime:
|
42
|
+
- '0.002100'
|
43
|
+
Strict-Transport-Security:
|
44
|
+
- max-age=0; includeSubDomains
|
45
|
+
Accept-Ranges:
|
46
|
+
- bytes
|
47
|
+
Date:
|
48
|
+
- Thu, 28 Jan 2021 10:04:42 GMT
|
49
|
+
Via:
|
50
|
+
- 1.1 varnish
|
51
|
+
X-Served-By:
|
52
|
+
- cache-fra19136-FRA
|
53
|
+
X-Cache:
|
54
|
+
- MISS
|
55
|
+
X-Cache-Hits:
|
56
|
+
- '0'
|
57
|
+
X-Timer:
|
58
|
+
- S1611828282.806343,VS0,VE395
|
59
|
+
Vary:
|
60
|
+
- Origin,Accept-Encoding
|
61
|
+
Transfer-Encoding:
|
62
|
+
- chunked
|
63
|
+
body:
|
64
|
+
encoding: ASCII-8BIT
|
65
|
+
string: '{"message":"Invalid API key: non-existent"}'
|
66
|
+
recorded_at: Thu, 28 Jan 2021 10:04:42 GMT
|
67
|
+
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,71 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: "<BRAZE_REST_URL>/users/alias/new"
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"user_aliases":[{"user_alias":{"alias_name":"abc","alias_label":"foo"}}]}'
|
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
|
+
- '66'
|
29
|
+
Cache-Control:
|
30
|
+
- max-age=0, private, must-revalidate
|
31
|
+
Content-Type:
|
32
|
+
- application/json
|
33
|
+
Etag:
|
34
|
+
- W/"da612bda0a786bcb949da037e296a092"
|
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
|
+
- '249982'
|
44
|
+
X-Ratelimit-Reset:
|
45
|
+
- '1592427600'
|
46
|
+
X-Request-Id:
|
47
|
+
- d0f2ec14-ad20-4ec1-8c98-e082ba1a29a7
|
48
|
+
X-Runtime:
|
49
|
+
- '0.007261'
|
50
|
+
Accept-Ranges:
|
51
|
+
- bytes
|
52
|
+
Date:
|
53
|
+
- Wed, 17 Jun 2020 20:30:11 GMT
|
54
|
+
Via:
|
55
|
+
- 1.1 varnish
|
56
|
+
X-Served-By:
|
57
|
+
- cache-hhn4027-HHN
|
58
|
+
X-Cache:
|
59
|
+
- MISS
|
60
|
+
X-Cache-Hits:
|
61
|
+
- '0'
|
62
|
+
X-Timer:
|
63
|
+
- S1592425811.496339,VS0,VE10
|
64
|
+
Vary:
|
65
|
+
- Origin,Accept-Encoding
|
66
|
+
body:
|
67
|
+
encoding: ASCII-8BIT
|
68
|
+
string: '{"aliases_processed":1,"message":"success"}'
|
69
|
+
http_version:
|
70
|
+
recorded_at: Wed, 17 Jun 2020 20:30:11 GMT
|
71
|
+
recorded_with: VCR 5.0.0
|
data/spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: "<BRAZE_REST_URL>/users/alias/new"
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"user_aliases":[{"user_alias":{"alias_name":"abc","alias_label":"foo"}}]}'
|
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
|
+
- '66'
|
29
|
+
Cache-Control:
|
30
|
+
- max-age=0, private, must-revalidate
|
31
|
+
Content-Type:
|
32
|
+
- application/json
|
33
|
+
Etag:
|
34
|
+
- W/"da612bda0a786bcb949da037e296a092"
|
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
|
+
- '249981'
|
44
|
+
X-Ratelimit-Reset:
|
45
|
+
- '1592427600'
|
46
|
+
X-Request-Id:
|
47
|
+
- 3e3620bf-17ee-4cb6-9bcf-252339f664e2
|
48
|
+
X-Runtime:
|
49
|
+
- '0.005803'
|
50
|
+
Accept-Ranges:
|
51
|
+
- bytes
|
52
|
+
Date:
|
53
|
+
- Wed, 17 Jun 2020 20:30:16 GMT
|
54
|
+
Via:
|
55
|
+
- 1.1 varnish
|
56
|
+
X-Served-By:
|
57
|
+
- cache-hhn4021-HHN
|
58
|
+
X-Cache:
|
59
|
+
- MISS
|
60
|
+
X-Cache-Hits:
|
61
|
+
- '0'
|
62
|
+
X-Timer:
|
63
|
+
- S1592425816.221760,VS0,VE9
|
64
|
+
Vary:
|
65
|
+
- Origin,Accept-Encoding
|
66
|
+
body:
|
67
|
+
encoding: ASCII-8BIT
|
68
|
+
string: '{"aliases_processed":1,"message":"success"}'
|
69
|
+
http_version:
|
70
|
+
recorded_at: Wed, 17 Jun 2020 20:30:16 GMT
|
71
|
+
recorded_with: VCR 5.0.0
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'create user aliases' do
|
6
|
+
let(:user) { { user_alias: { alias_name: 'abc', alias_label: 'foo' } } }
|
7
|
+
|
8
|
+
subject(:create_user_aliases) do
|
9
|
+
api.create_user_aliases(user_aliases: [user])
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'with success', vcr: true do
|
13
|
+
it 'responds with created' do
|
14
|
+
expect(create_user_aliases.status).to be 201
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'responds with success message' do
|
18
|
+
expect(JSON.parse(create_user_aliases.body)).to eq(
|
19
|
+
'aliases_processed' => 1,
|
20
|
+
'message' => 'success'
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'unauthorized', vcr: true do
|
26
|
+
let(:api_key) { 'non-existent' }
|
27
|
+
|
28
|
+
it 'responds with unauthorized' do
|
29
|
+
expect(create_user_aliases.status).to be 401
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braze_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Nussbaum
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-01-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/braze_ruby/endpoints.rb
|
163
163
|
- lib/braze_ruby/endpoints/campaigns.rb
|
164
164
|
- lib/braze_ruby/endpoints/canvas.rb
|
165
|
+
- lib/braze_ruby/endpoints/create_user_aliases.rb
|
165
166
|
- lib/braze_ruby/endpoints/delete_users.rb
|
166
167
|
- lib/braze_ruby/endpoints/email_status.rb
|
167
168
|
- lib/braze_ruby/endpoints/email_sync.rb
|
@@ -174,6 +175,7 @@ files:
|
|
174
175
|
- lib/braze_ruby/rest.rb
|
175
176
|
- lib/braze_ruby/rest/base.rb
|
176
177
|
- lib/braze_ruby/rest/canvas_details.rb
|
178
|
+
- lib/braze_ruby/rest/create_user_aliases.rb
|
177
179
|
- lib/braze_ruby/rest/delete_users.rb
|
178
180
|
- lib/braze_ruby/rest/email_hard_bounces.rb
|
179
181
|
- lib/braze_ruby/rest/email_status.rb
|
@@ -194,6 +196,7 @@ files:
|
|
194
196
|
- spec/braze_ruby/endpoints/delete_users_spec.rb
|
195
197
|
- spec/braze_ruby/endpoints/track_users_spec.rb
|
196
198
|
- spec/braze_ruby/http_spec.rb
|
199
|
+
- spec/braze_ruby/rest/create_user_aliases_spec.rb
|
197
200
|
- spec/braze_ruby/rest/delete_users_spec.rb
|
198
201
|
- spec/braze_ruby/rest/email_status_spec.rb
|
199
202
|
- spec/braze_ruby/rest/export_users_spec.rb
|
@@ -205,6 +208,9 @@ files:
|
|
205
208
|
- spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
|
206
209
|
- spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml
|
207
210
|
- spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml
|
211
|
+
- spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml
|
212
|
+
- spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml
|
213
|
+
- spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml
|
208
214
|
- spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
|
209
215
|
- spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
|
210
216
|
- spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
|
@@ -239,6 +245,7 @@ files:
|
|
239
245
|
- spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
|
240
246
|
- spec/integrations/campaigns_spec.rb
|
241
247
|
- spec/integrations/canvas_spec.rb
|
248
|
+
- spec/integrations/create_user_aliases_spec.rb
|
242
249
|
- spec/integrations/delete_users_spec.rb
|
243
250
|
- spec/integrations/email_status_spec.rb
|
244
251
|
- spec/integrations/email_sync_spec.rb
|
@@ -274,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
274
281
|
- !ruby/object:Gem::Version
|
275
282
|
version: '0'
|
276
283
|
requirements: []
|
277
|
-
rubygems_version: 3.1.
|
284
|
+
rubygems_version: 3.1.4
|
278
285
|
signing_key:
|
279
286
|
specification_version: 4
|
280
287
|
summary: A wrapper for the Braze REST API forked from the appboy gem, track users/events/purchases,
|
@@ -284,6 +291,7 @@ test_files:
|
|
284
291
|
- spec/braze_ruby/endpoints/delete_users_spec.rb
|
285
292
|
- spec/braze_ruby/endpoints/track_users_spec.rb
|
286
293
|
- spec/braze_ruby/http_spec.rb
|
294
|
+
- spec/braze_ruby/rest/create_user_aliases_spec.rb
|
287
295
|
- spec/braze_ruby/rest/delete_users_spec.rb
|
288
296
|
- spec/braze_ruby/rest/email_status_spec.rb
|
289
297
|
- spec/braze_ruby/rest/export_users_spec.rb
|
@@ -295,6 +303,9 @@ test_files:
|
|
295
303
|
- spec/fixtures/responses/campaigns/trigger_send/sends_an_email.yml
|
296
304
|
- spec/fixtures/responses/canvas/details/returns_error_when_no_canvas.yml
|
297
305
|
- spec/fixtures/responses/canvas/trigger_send/sends_a_canvas.yml
|
306
|
+
- spec/fixtures/responses/create_user_aliases/unauthorized/responds_with_unauthorized.yml
|
307
|
+
- spec/fixtures/responses/create_user_aliases/with_success/responds_with_created.yml
|
308
|
+
- spec/fixtures/responses/create_user_aliases/with_success/responds_with_success_message.yml
|
298
309
|
- spec/fixtures/responses/delete_users/unauthorized/responds_with_unauthorized.yml
|
299
310
|
- spec/fixtures/responses/delete_users/with_success/responds_with_created.yml
|
300
311
|
- spec/fixtures/responses/delete_users/with_success/responds_with_success_message.yml
|
@@ -329,6 +340,7 @@ test_files:
|
|
329
340
|
- spec/fixtures/responses/track_users/with_success/responds_with_success_message.yml
|
330
341
|
- spec/integrations/campaigns_spec.rb
|
331
342
|
- spec/integrations/canvas_spec.rb
|
343
|
+
- spec/integrations/create_user_aliases_spec.rb
|
332
344
|
- spec/integrations/delete_users_spec.rb
|
333
345
|
- spec/integrations/email_status_spec.rb
|
334
346
|
- spec/integrations/email_sync_spec.rb
|