txbr 1.1.0 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5715c1621b00c110e167d8116399482d7bad3622a7fcd205ac64bfac194f654e
4
- data.tar.gz: 016b5d0f0455b11a0b73986f9aac04a704ca74d1168a2d417bee9479873b33e0
3
+ metadata.gz: 62e08fd199a92f5d5f3023cd24e118384402b8124cfb70922e06ac727a8ed609
4
+ data.tar.gz: fb507665ce3f234fcab1c1b8a34954b3458f23639f41dd5b4b53423c8d2725ff
5
5
  SHA512:
6
- metadata.gz: 9e902060a7bc2a89399f2217188bc05c0069319e1177068bca3522ed86f75c451eca5dc375a348bf1f45c37a6332f12f0d0bff7ba60052c64cf5492c31ff95fe
7
- data.tar.gz: ea742212714f4d9bd8227275867266729925f7cc9d69071222e8db7e7b8f13d400da080ada51ddfc0f4f3e14111fe984b34e22742c93a94483abd8f6ec56cbbd
6
+ metadata.gz: 55a839b383684e07541c2af875074e69c7fe5eff1d0d90f1a684b1d4621a226d4550bf611e5186f7d0ed81775d9d89ee8f7e9305eeb5ee458fdbc198e257300d
7
+ data.tar.gz: 401b4b866e1805a26a782aba41ceb62a200a3aab02591279ed149b92282af4c048be93160d666d8b052feff0bf0fb97fe68a30c9733462f3ba2d805b242353fb
@@ -3,8 +3,6 @@ require 'liquid'
3
3
  module Txbr
4
4
  autoload :Application, 'txbr/application'
5
5
  autoload :BrazeApi, 'txbr/braze_api'
6
- autoload :BrazeSession, 'txbr/braze_session'
7
- autoload :BrazeSessionApi, 'txbr/braze_session_api'
8
6
  autoload :Commands, 'txbr/commands'
9
7
  autoload :Config, 'txbr/config'
10
8
  autoload :EmailTemplate, 'txbr/email_template'
@@ -1,3 +1,3 @@
1
1
  module Txbr
2
- VERSION = '1.1.0'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -6,41 +6,9 @@ require 'pry-byebug'
6
6
  require 'txbr'
7
7
  require 'txgh'
8
8
  require 'cgi'
9
- require 'vcr'
10
9
 
11
10
  require 'support/env_helpers'
12
11
 
13
- FAKE_SESSION_ID = '123abc123abc123abc123abc123abc12'
14
-
15
- VCR.configure do |config|
16
- config.cassette_library_dir = 'spec/fixtures/cassettes'
17
- config.hook_into :webmock
18
-
19
- %w(BRAZE_EMAIL_ADDRESS BRAZE_PASSWORD).each do |var|
20
- config.filter_sensitive_data(var) { ENV[var] || var }
21
- config.filter_sensitive_data(var) { CGI.escape(ENV[var] || var) }
22
- end
23
-
24
- config.before_record do |interaction|
25
- # Clear out the body for requests to the dashboard, etc. We need to keep
26
- # the body for the auth request so mechanize can find the login form.
27
- if %w(/auth).none? { |str| interaction.request.uri.include?(str) }
28
- interaction.response.body.replace('')
29
- interaction.response.headers['Content-Length'] = ['0']
30
- end
31
-
32
- # remove session ID from request cookie header
33
- interaction.request.headers.fetch('Cookie', []).each do |header|
34
- header.sub!(/_session_id=[a-z0-9]{32}/, "_session_id=#{FAKE_SESSION_ID}")
35
- end
36
-
37
- # remove session ID from response set cookie headers
38
- interaction.response.headers.fetch('Set-Cookie', []).each do |header|
39
- header.sub!(/_session_id=[a-z0-9]{32}/, "_session_id=#{FAKE_SESSION_ID}")
40
- end
41
- end
42
- end
43
-
44
12
  RSpec.configure do |config|
45
13
  config.include(EnvHelpers)
46
14
  end
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
17
17
  s.add_dependency 'faraday', '~> 0.9'
18
18
  s.add_dependency 'faraday_middleware', '~> 0.10'
19
19
  s.add_dependency 'liquid', '~> 4.0'
20
- s.add_dependency 'mechanize', '~> 2.7'
21
20
  s.add_dependency 'sinatra', '~> 1.4'
22
21
  s.add_dependency 'sinatra-contrib', '~> 1.4'
23
22
  s.add_dependency 'txgh', '~> 6.6'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: txbr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '4.0'
69
- - !ruby/object:Gem::Dependency
70
- name: mechanize
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '2.7'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '2.7'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: sinatra
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -134,7 +120,6 @@ files:
134
120
  - lib/txbr.rb
135
121
  - lib/txbr/application.rb
136
122
  - lib/txbr/braze_api.rb
137
- - lib/txbr/braze_session.rb
138
123
  - lib/txbr/commands.rb
139
124
  - lib/txbr/config.rb
140
125
  - lib/txbr/email_template.rb
@@ -149,10 +134,8 @@ files:
149
134
  - lib/txbr/version.rb
150
135
  - spec/application_spec.rb
151
136
  - spec/braze_api_spec.rb
152
- - spec/braze_session_spec.rb
153
137
  - spec/config_spec.rb
154
138
  - spec/email_template_spec.rb
155
- - spec/fixtures/cassettes/braze_login.yml
156
139
  - spec/spec_helper.rb
157
140
  - spec/strings_manifest_spec.rb
158
141
  - spec/support/env_helpers.rb
@@ -1,39 +0,0 @@
1
- require 'cgi'
2
- require 'mechanize'
3
-
4
- module Txbr
5
- class BrazeSession
6
- attr_reader :api_url, :email_address, :password
7
-
8
- def initialize(api_url, email_address, password)
9
- @api_url = api_url
10
- @email_address = email_address
11
- @password = password
12
-
13
- reset!
14
- end
15
-
16
- def session_id
17
- @session_id ||= begin
18
- agent = Mechanize.new
19
- url = Txbr::Utils.url_join(api_url, "auth?email=#{CGI.escape(email_address)}")
20
-
21
- agent.get(url) do |page|
22
- page.form_with(id: 'developer_signin').tap do |form|
23
- form['developer[password]'] = password
24
- form.submit
25
- end
26
- end
27
-
28
- agent
29
- .cookies
30
- .find { |cookie| cookie.name == '_session_id' }
31
- .value
32
- end
33
- end
34
-
35
- def reset!
36
- @session_id = nil
37
- end
38
- end
39
- end
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Txbr::BrazeSession do
4
- # we need to hard-code this in order for VCR to successfully match requests
5
- # after the initial recording
6
- let(:api_url) { 'https://dashboard-03.braze.com' }
7
-
8
- # NOTE: you will need to provide these env variables if you want to
9
- # re-generate the VCR cassettes that depend on Braze login.
10
- let(:email_address) { ENV['BRAZE_EMAIL_ADDRESS'] || 'BRAZE_EMAIL_ADDRESS' }
11
- let(:password) { ENV['BRAZE_PASSWORD'] || 'BRAZE_PASSWORD' }
12
-
13
- let(:session) { described_class.new(api_url, email_address, password) }
14
-
15
- describe '#session_id' do
16
- around do |example|
17
- VCR.use_cassette('braze_login') { example.run }
18
- end
19
-
20
- it 'logs in and is issued a session id' do
21
- expect(session.session_id).to match(/[a-z0-9]{32}/)
22
- end
23
-
24
- it 'does not create a new session if called more than once' do
25
- # expect mechanize to be invoked exactly once
26
- expect(Mechanize).to receive(:new).and_call_original.once
27
-
28
- # grab the session ID multiple times, which should invoke
29
- # mechanize the first time only
30
- session.session_id
31
- session.session_id
32
- end
33
- end
34
-
35
- describe '#reset!' do
36
- it 'causes a new session to be requested' do
37
- # mechanize should be invoked twice, once before the session is reset
38
- # and once after
39
- expect(Mechanize).to receive(:new).and_call_original.twice
40
-
41
- # we have to wrap the session_id calls in separate use_cassette calls
42
- # because VCR isn't smart enough to stub the requests more than once
43
- # (it would be great if cassettes had a "rewind" option, but alas)
44
- VCR.use_cassette('braze_login') { session.session_id }
45
- session.reset!
46
- VCR.use_cassette('braze_login') { session.session_id }
47
- end
48
- end
49
- end
@@ -1,324 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://dashboard-03.braze.com/auth?email=BRAZE_EMAIL_ADDRESS
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip,deflate,identity
12
- Accept:
13
- - "*/*"
14
- User-Agent:
15
- - Mechanize/2.7.5 Ruby/2.5.1p57 (http://github.com/sparklemotion/mechanize/)
16
- Accept-Charset:
17
- - ISO-8859-1,utf-8;q=0.7,*;q=0.7
18
- Accept-Language:
19
- - en-us,en;q=0.5
20
- Host:
21
- - dashboard-03.braze.com
22
- Connection:
23
- - keep-alive
24
- Keep-Alive:
25
- - '300'
26
- response:
27
- status:
28
- code: 200
29
- message: OK
30
- headers:
31
- Cache-Control:
32
- - max-age=0, private, must-revalidate
33
- Content-Encoding:
34
- - gzip
35
- Content-Type:
36
- - text/html; charset=utf-8
37
- Etag:
38
- - W/"0350212486d4a8ab5be5221a08898626"
39
- Server:
40
- - nginx
41
- Set-Cookie:
42
- - _session_id=123abc123abc123abc123abc123abc12; path=/; secure; HttpOnly
43
- X-Content-Type-Options:
44
- - nosniff
45
- X-Frame-Options:
46
- - SAMEORIGIN
47
- X-Request-Id:
48
- - b8a8efff-1307-410b-b09a-ae8d74088b69
49
- X-Runtime:
50
- - '0.024584'
51
- X-Xss-Protection:
52
- - 1; mode=block
53
- Content-Length:
54
- - '2352'
55
- Accept-Ranges:
56
- - bytes
57
- Date:
58
- - Thu, 31 May 2018 19:51:53 GMT
59
- Via:
60
- - 1.1 varnish
61
- Age:
62
- - '0'
63
- Connection:
64
- - keep-alive
65
- X-Served-By:
66
- - cache-sjc3137-SJC
67
- X-Cache:
68
- - MISS
69
- X-Cache-Hits:
70
- - '0'
71
- X-Timer:
72
- - S1527796313.967896,VS0,VE103
73
- Vary:
74
- - Accept-Encoding
75
- Strict-Transport-Security:
76
- - max-age=86400; includeSubDomains
77
- body:
78
- encoding: ASCII-8BIT
79
- string: !binary |-
80
- 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
81
- http_version:
82
- recorded_at: Thu, 31 May 2018 19:51:53 GMT
83
- - request:
84
- method: post
85
- uri: https://dashboard-03.braze.com/developers/sign_in
86
- body:
87
- encoding: UTF-8
88
- string: utf8=%E2%9C%93&authenticity_token=Rsnzetj99fW5C6sSB7vgpn89rskQ9eMtCcss%2BjthERU38BetZTlfrGyqAodqNKalJhL3t9kqMcmHPFZ0PthjNQ%3D%3D&developer%5Bemail%5D=BRAZE_EMAIL_ADDRESS&developer%5Bpassword%5D=BRAZE_PASSWORD
89
- headers:
90
- Accept-Encoding:
91
- - gzip,deflate,identity
92
- Accept:
93
- - "*/*"
94
- User-Agent:
95
- - Mechanize/2.7.5 Ruby/2.5.1p57 (http://github.com/sparklemotion/mechanize/)
96
- Accept-Charset:
97
- - ISO-8859-1,utf-8;q=0.7,*;q=0.7
98
- Accept-Language:
99
- - en-us,en;q=0.5
100
- Cookie:
101
- - _session_id=123abc123abc123abc123abc123abc12
102
- Host:
103
- - dashboard-03.braze.com
104
- Referer:
105
- - https://dashboard-03.braze.com/auth?email=BRAZE_EMAIL_ADDRESS
106
- Content-Type:
107
- - application/x-www-form-urlencoded
108
- Content-Length:
109
- - '219'
110
- Connection:
111
- - keep-alive
112
- Keep-Alive:
113
- - '300'
114
- response:
115
- status:
116
- code: 302
117
- message: Found
118
- headers:
119
- Cache-Control:
120
- - no-cache
121
- Content-Type:
122
- - text/html; charset=utf-8
123
- Location:
124
- - https://dashboard-03.braze.com/dashboard
125
- Server:
126
- - nginx
127
- Set-Cookie:
128
- - _session_id=123abc123abc123abc123abc123abc12; path=/; secure; HttpOnly
129
- - remember_login_enc_v1=HhZn20fKb8HUFr4vpxoWbw%3D%3D%24CCaTLGofO%2BnbDjIQ56p%2BhQ%3D%3D;
130
- domain=.braze.com; path=/; expires=Wed, 30 May 2018 19:51:53 -0000
131
- X-Content-Type-Options:
132
- - nosniff
133
- X-Frame-Options:
134
- - SAMEORIGIN
135
- X-Request-Id:
136
- - b072ed0b-b60a-4dd5-92ca-b68dbbb8b051
137
- X-Runtime:
138
- - '0.125571'
139
- X-Xss-Protection:
140
- - 1; mode=block
141
- Content-Length:
142
- - '0'
143
- Accept-Ranges:
144
- - bytes
145
- Date:
146
- - Thu, 31 May 2018 19:51:53 GMT
147
- Via:
148
- - 1.1 varnish
149
- Connection:
150
- - keep-alive
151
- X-Served-By:
152
- - cache-sjc3129-SJC
153
- X-Cache:
154
- - MISS
155
- X-Cache-Hits:
156
- - '0'
157
- X-Timer:
158
- - S1527796313.089966,VS0,VE414
159
- Strict-Transport-Security:
160
- - max-age=86400; includeSubDomains
161
- body:
162
- encoding: UTF-8
163
- string: ''
164
- http_version:
165
- recorded_at: Thu, 31 May 2018 19:51:53 GMT
166
- - request:
167
- method: get
168
- uri: https://dashboard-03.braze.com/dashboard
169
- body:
170
- encoding: US-ASCII
171
- string: ''
172
- headers:
173
- Accept-Encoding:
174
- - gzip,deflate,identity
175
- Accept:
176
- - "*/*"
177
- User-Agent:
178
- - Mechanize/2.7.5 Ruby/2.5.1p57 (http://github.com/sparklemotion/mechanize/)
179
- Accept-Charset:
180
- - ISO-8859-1,utf-8;q=0.7,*;q=0.7
181
- Accept-Language:
182
- - en-us,en;q=0.5
183
- Cookie:
184
- - _session_id=123abc123abc123abc123abc123abc12
185
- Host:
186
- - dashboard-03.braze.com
187
- Referer:
188
- - https://dashboard-03.braze.com/auth?email=BRAZE_EMAIL_ADDRESS
189
- Connection:
190
- - keep-alive
191
- Keep-Alive:
192
- - '300'
193
- response:
194
- status:
195
- code: 302
196
- message: Found
197
- headers:
198
- Cache-Control:
199
- - no-cache
200
- Content-Type:
201
- - text/html; charset=utf-8
202
- Location:
203
- - https://dashboard-03.braze.com/dashboard/app_usage
204
- Server:
205
- - nginx
206
- X-Content-Type-Options:
207
- - nosniff
208
- X-Frame-Options:
209
- - SAMEORIGIN
210
- X-Request-Id:
211
- - 2613eba9-0357-4080-86f6-313e17d1b227
212
- X-Runtime:
213
- - '0.022998'
214
- X-Xss-Protection:
215
- - 1; mode=block
216
- Content-Length:
217
- - '0'
218
- Accept-Ranges:
219
- - bytes
220
- Date:
221
- - Thu, 31 May 2018 19:51:53 GMT
222
- Via:
223
- - 1.1 varnish
224
- Age:
225
- - '0'
226
- Connection:
227
- - keep-alive
228
- X-Served-By:
229
- - cache-sjc3132-SJC
230
- X-Cache:
231
- - MISS
232
- X-Cache-Hits:
233
- - '0'
234
- X-Timer:
235
- - S1527796314.518727,VS0,VE102
236
- Strict-Transport-Security:
237
- - max-age=86400; includeSubDomains
238
- body:
239
- encoding: UTF-8
240
- string: ''
241
- http_version:
242
- recorded_at: Thu, 31 May 2018 19:51:53 GMT
243
- - request:
244
- method: get
245
- uri: https://dashboard-03.braze.com/dashboard/app_usage
246
- body:
247
- encoding: US-ASCII
248
- string: ''
249
- headers:
250
- Accept-Encoding:
251
- - gzip,deflate,identity
252
- Accept:
253
- - "*/*"
254
- User-Agent:
255
- - Mechanize/2.7.5 Ruby/2.5.1p57 (http://github.com/sparklemotion/mechanize/)
256
- Accept-Charset:
257
- - ISO-8859-1,utf-8;q=0.7,*;q=0.7
258
- Accept-Language:
259
- - en-us,en;q=0.5
260
- Cookie:
261
- - _session_id=123abc123abc123abc123abc123abc12
262
- Host:
263
- - dashboard-03.braze.com
264
- Referer:
265
- - https://dashboard-03.braze.com/auth?email=BRAZE_EMAIL_ADDRESS
266
- Connection:
267
- - keep-alive
268
- Keep-Alive:
269
- - '300'
270
- response:
271
- status:
272
- code: 200
273
- message: OK
274
- headers:
275
- Cache-Control:
276
- - max-age=0, private, must-revalidate
277
- Content-Encoding:
278
- - gzip
279
- Content-Type:
280
- - text/html; charset=utf-8
281
- Etag:
282
- - W/"17d621ec3966c40ca1fbd8206ed65de6"
283
- Server:
284
- - nginx
285
- X-Content-Type-Options:
286
- - nosniff
287
- X-Frame-Options:
288
- - SAMEORIGIN
289
- X-Request-Id:
290
- - 97db1283-331e-4f93-8f26-7a39632b56b7
291
- X-Runtime:
292
- - '0.226427'
293
- X-Xss-Protection:
294
- - 1; mode=block
295
- Content-Length:
296
- - '0'
297
- Accept-Ranges:
298
- - bytes
299
- Date:
300
- - Thu, 31 May 2018 19:51:54 GMT
301
- Via:
302
- - 1.1 varnish
303
- Age:
304
- - '0'
305
- Connection:
306
- - keep-alive
307
- X-Served-By:
308
- - cache-sjc3134-SJC
309
- X-Cache:
310
- - MISS
311
- X-Cache-Hits:
312
- - '0'
313
- X-Timer:
314
- - S1527796314.634948,VS0,VE537
315
- Vary:
316
- - Accept-Encoding
317
- Strict-Transport-Security:
318
- - max-age=86400; includeSubDomains
319
- body:
320
- encoding: UTF-8
321
- string: ''
322
- http_version:
323
- recorded_at: Thu, 31 May 2018 19:51:54 GMT
324
- recorded_with: VCR 4.0.0