txbr 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
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