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 +4 -4
- data/lib/txbr.rb +0 -2
- data/lib/txbr/version.rb +1 -1
- data/spec/spec_helper.rb +0 -32
- data/txbr.gemspec +0 -1
- metadata +1 -18
- data/lib/txbr/braze_session.rb +0 -39
- data/spec/braze_session_spec.rb +0 -49
- data/spec/fixtures/cassettes/braze_login.yml +0 -324
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62e08fd199a92f5d5f3023cd24e118384402b8124cfb70922e06ac727a8ed609
|
4
|
+
data.tar.gz: fb507665ce3f234fcab1c1b8a34954b3458f23639f41dd5b4b53423c8d2725ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55a839b383684e07541c2af875074e69c7fe5eff1d0d90f1a684b1d4621a226d4550bf611e5186f7d0ed81775d9d89ee8f7e9305eeb5ee458fdbc198e257300d
|
7
|
+
data.tar.gz: 401b4b866e1805a26a782aba41ceb62a200a3aab02591279ed149b92282af4c048be93160d666d8b052feff0bf0fb97fe68a30c9733462f3ba2d805b242353fb
|
data/lib/txbr.rb
CHANGED
@@ -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'
|
data/lib/txbr/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -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
|
data/txbr.gemspec
CHANGED
@@ -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.
|
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
|
data/lib/txbr/braze_session.rb
DELETED
@@ -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
|
data/spec/braze_session_spec.rb
DELETED
@@ -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
|
-
H4sIAAAAAAAAA51YeVPcyBX/n0/RO6kKEI9G9xUYHOMFm/gCG++uTbmoPkcCjVpIPcB4vd89r1vSjDicInFhkNT97t87und/YZKqZcVRpubF3sZu/4djtreB0O6cKwxrqrL41SK/no5eylLxUlmnQDRCtH2bjhS/VbYm3kE0w3XD1XShhJWMDJciLy9RzYvpiJWNVdVccEWzEcrgaTqybXyBbyczKWcFx1XeTKicA6GmVLkq+N5bOUN5iZRE+zX+ztGP9u+u3S6bnUaGNqVThjbNqJXZqGXBm4xz1UvUBjX/tG2BGzURYEMzKbmygQTE20EUuIIQYTkuoVbAU9dKfI9YKQ8SHEZJ6AXpRLO318Y9UfDPRPoBjoUAaVEaeVaASWKRQIRWirFHAi9MuKC9yLsOHRo35yzH01FDa87LlXdxA9FobMav84ZblMRhwkgciRTHMeMJSQQnYSwiJuLEYUnipY7HSEi464gEflxKSeoKRjijbmK0QAPLTVifrEVequKUF0dltVAWdRjxeBqAEnFKIk4wDZLQjVjsuswXIqXU91MapHFCIjfBUcrTKBDwzlzHc8lKF3DJo2D9w/r8wnop5xVWOSmGeD06mHI242Oa1XLOpy7ArcV6j95RD9+NbqHEsG/EOHg3r1QuwcEr9K/xuZSLugMpw01GJK7ZZMW85YEXKpP1gNyAugO8gXGXFwJf5yBjAr96KAOhoguF9PdRB/d8jmfcvrXabxCajd1fLAtd5/ymgu2owWWulkjIGs0lyQuOSC1vGl43E2RZveGtbj3RQLubnKlsquFDuWVexjkwzHFhNRQXnfO0xKODFB3nZckZ+pQr3qBPi8pocF8KrqoipxAUWVpa7n1foF973xmotZFpFZxDiq6JlZSFyqsB/TtcgjfQIA68xBB7hoCumRh+G4OCNAfnCN6sSoPdf5hcNNrFZrupgq182tTCqnCN5wOhOqJQFHMKfj5X8lJn3z29DV23tMLNIbVfCefkZOF8//pGHJ5+uRS+c5RUx/vff/vt9dHbD446+vDiWH76Y/8yzd/IZ+zk4+HJ8uj3d1+Ol29fn7qzr8WXbPlWfnjmXv/6xtsvDuLPL6bTVm0oii1Yh2XxAl/j9qspzQhtiUVJdSS28nEzluPZuB7j8Xz7z/xs85UpyS9KXCzBuOYDueBUbX6b1jv5Wf1tqn/9+LGi3/7TMASWemFyZdYnVz9+nH3bnlSLJtvC9WwxB0c123+NzWIxdf9R8huIt+Jb2zt4CrW/5vByUHC9cUtujzumCM1hdcZVt9TsL0/x7D2gBzadOd928AQ3y5JOXXhqajqd7cwnECjg8l4yPslLQLza55AGfEsbaPj+tb11k5dM3oyhERrdxputezbHm7Z9c3PT9SULcNV6QXcne/120cDOGd7c3tFtCKEZ3tpsbdgco02oP2maRE7sWrF+BxASudQsNEG/v+El06sVQFdnYLu2a7eaAAI3du3MtOSNXSLZ0vQdll+jnE1HGnyAxQLq/HSkoYXzktdddM2ubq2Qs7y0wH7dXIGBfurX9LPVKEwvIVPWTIwASH1eyIrX500+K3PANsMK6yRoCr60rnGRwwfdd+sFpHIp11/WzyOEDcqg3a/4NbZmeK45Ykp5BR2hmx1Gn08PYXhAkHiZBBUqCRm6t5vrttElItRn2ND23SxnTOccCF6AHn//260Xu/6OToOO5u6+dR2+n7Udh49N+Z2rizQVv4cvo+bTfnw9q8okrZvLk5S/Uy+hCz67UNnBx89+ss/V19NC1K+WVy8ku3r/Bhf/zt76Kr28ekfnr48PvzrHKrt4f7JOTPA+7l2vA8tri2BoCW3h78cTjT6ie0M7EO3aWENBg2YYVu1DCwJLMFTePu53twDcKlwurYYXkMCcWR1NBxLN8RNwQUdll2y7NuCmrQ/do1kA6Q/Ea7DUsrBmtVxUK4Z3FOyl8jnOC1QtisIquICAdtIQUrezbLKABP3XTO/R9j7U5K5NMCxcQkG1BkzrfJYNua593MyxFgq9dTUWddB7TmHmrM8Nl3Mq5WXOpwbHa+UQei+V7ijPV/qaUGiPgE6Pu6rDXYenR+y7j91+vuhy7cxo9G10LwPN1768G/GDBL8TClRBQbiRNRtY0il1J31rPdjXHJKsTd87i/O8LHg5g/4/ikaoKjDlmSwArtPRcc8eQQGSGmEF10VACgHpDJ8EFFSoSKvH3uCVXl0ir8rBWb/ywOo1iRk8+39D2w2qDAD0oDOTCurTA/uNw1aJ9wgoBqWpJ7ehP432Dg3PdqzoV54PUGA4r5GwenlquhSY8GJVxDNOL4m8fRi5tozRfr3zYA29ck6gPnfo0EW7/9bmBxTWjmVfI9tgD9z5sWOC3i3RgUbZCt9Gt4fFYOh9IaUa1B4wvy3Vrb7NgsxzmLC6CUrOzVuXGl3hWXUwokrUE2hDVuVN9Y2H5Y2e6GAW1bhc0etJ7TFkSN0grUFj/PBxWNPuppDK8prp1qaWlqEjC6Vk2dwpB2sI/WQ70kbAf4txgReFGg1ACyqaFCMYTmPdoK8l2e3599yo692j+Pm+YT4Y640/4LCsvYPaAW6YMv+tcO3aegzYW3tn/QQs+mFSz1aPn9nNOd4uctLYF1cLXi9tb+JO3O5lAsUEhmpo46u55j7T7qiqD4mW4gV0Nej39p0zoxOG2MM4iVM/TCiNnUDAydBJfBp5LBEu953Ai6lPQ0wwceD0jl03itMgppzHEfm/NFiovGgs7AZ+Ql1fYJcSGvl+EsfYjwQlAYHTOsVpRHyfesLBUZz4jp+mjArmhAENHMG8p4nO4DxqY9KiL+MFzF0N3AMQOKcLj/ixSAIeO6HHkyCM4sBJwtjlMP7ELuFx6KYOc7kIQ0Zo6lARu45Lefg/iO7uCeCwHwrsY58kqUtjklAWM0yFQ3zPg7sDJnwRe3B1EEdOyCIiAu5jVyTgC5eTIHqaxH6G9OLUS0JGHRJjlsTM4wQcSNwIc4cyDDcuEQfDRIhTHwJKmAfRZwlmkfDhCkE8TRogU3u2F4oZg8y2Eof6hDgUHOmxFC5iAE4UcyIccGMaw20EwQm433W564GBLA5jB66CUuGkgonggWwY1tshHYZ2c6v2HyQG0CpmEwAA
|
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
|