cointrader.net 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cointrader.net/client.rb +1 -0
- data/lib/cointrader.net/client/error.rb +6 -0
- data/lib/cointrader.net/client/request.rb +30 -1
- data/lib/cointrader.net/version.rb +1 -1
- data/spec/client_spec.rb +49 -79
- data/spec/fixtures/vcr_cassettes/{balance.yml → Cointrader_Client/account/_balance/returns_a_balance.yml} +6 -6
- data/spec/fixtures/vcr_cassettes/{tradehistory.yml → Cointrader_Client/account/_tradehistory/returns_trade_history.yml} +6 -6
- data/spec/fixtures/vcr_cassettes/{cancel.yml → Cointrader_Client/order/_cancel/cancels_an_order.yml} +12 -12
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_limit_buy/returns_an_order.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_limit_buy/throws_an_error_when_there_are_insufficient_funds.yml +66 -0
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_limit_sell/returns_an_order.yml +66 -0
- data/spec/fixtures/vcr_cassettes/{list.yml → Cointrader_Client/order/_list/when_there_are_no_orders/throws_an_error.yml} +6 -6
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_list/when_there_are_orders/lists_open_limit_orders.yml +129 -0
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_market_buy/returns_an_order.yml +67 -0
- data/spec/fixtures/vcr_cassettes/Cointrader_Client/order/_market_sell/returns_an_order.yml +66 -0
- data/spec/fixtures/vcr_cassettes/{trades.yml → Cointrader_Client/order/_trades/lists_recent_trades_executed.yml} +11 -9
- data/spec/fixtures/vcr_cassettes/{orders.yml → Cointrader_Client/stats/_orders/returns_open_orders.yml} +12 -12
- data/spec/fixtures/vcr_cassettes/{stats_24h.yml → Cointrader_Client/stats/_stats_24h/returns_24_hour_sliding_statistics.yml} +11 -11
- data/spec/fixtures/vcr_cassettes/{stats_7d.yml → Cointrader_Client/stats/_stats_7d/returns_7_day_sliding_statistics.yml} +10 -10
- data/spec/fixtures/vcr_cassettes/{symbol.yml → Cointrader_Client/stats/_symbol/returns_supported_currencies.yml} +6 -6
- data/spec/spec_helper.rb +1 -0
- metadata +33 -28
- data/spec/fixtures/vcr_cassettes/limit_buy.yml +0 -65
- data/spec/fixtures/vcr_cassettes/limit_sell.yml +0 -58
- data/spec/fixtures/vcr_cassettes/market_buy.yml +0 -71
- data/spec/fixtures/vcr_cassettes/market_sell.yml +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ecad613ebfbea1bf2859dfc6a00029ef45610b6
|
4
|
+
data.tar.gz: bdfbb95bb25cbabcc7ba0399734d6455f6562ace
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea34eb938fc6805bb1728a9ba78c3692760d2769e8f6f2b9e7732fd97ec1f8ce83a91469d27a499372abca87518f829d89f57fbfe9e4f892573bd048981f301b
|
7
|
+
data.tar.gz: 79a0c0b1bb3bc3fbd72729dad7d6d607bc143b6b7904a3d56a10cdd44dfb085757ae6adbcaa5d3c3b6ebf908c1de47ce0b0787fb7aa1917ca7b4f15a1045b63c
|
@@ -39,9 +39,11 @@ module Cointrader
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def request(method, path, body={})
|
42
|
-
JSON.parse(hmac_request(method, path, body))
|
42
|
+
check_errors(JSON.parse(hmac_request(method, path, body)))
|
43
43
|
end
|
44
44
|
|
45
|
+
private
|
46
|
+
|
45
47
|
def hmac_request method, path, body={}
|
46
48
|
payload = {}
|
47
49
|
headers = { :content_type => 'application/json' }
|
@@ -77,5 +79,32 @@ module Cointrader
|
|
77
79
|
headers: headers,
|
78
80
|
)
|
79
81
|
end
|
82
|
+
|
83
|
+
# Returns the error code from `response` or `nil` if there is none.
|
84
|
+
def extract_error_code response
|
85
|
+
return unless response
|
86
|
+
return unless response['data'] && response['data'].class == Hash
|
87
|
+
return unless response['data']['errorCode']
|
88
|
+
|
89
|
+
response['data']['errorCode'].to_i
|
90
|
+
end
|
91
|
+
|
92
|
+
def check_errors response
|
93
|
+
code = extract_error_code(response)
|
94
|
+
|
95
|
+
if code
|
96
|
+
errorClass =
|
97
|
+
case code
|
98
|
+
when 401 then Unauthorized
|
99
|
+
when 802, 803 then InsufficientFunds # Fiat, Crypto respectively.
|
100
|
+
when 801 then NoOpenOrders
|
101
|
+
else Error
|
102
|
+
end
|
103
|
+
|
104
|
+
raise errorClass.new(response['message'])
|
105
|
+
end
|
106
|
+
|
107
|
+
response
|
108
|
+
end
|
80
109
|
end
|
81
110
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Cointrader::Client do
|
3
|
+
describe Cointrader::Client, vcr: true do
|
4
4
|
def limit_buy
|
5
5
|
subject.limit_buy(total_quantity: 1, price: 10)
|
6
6
|
end
|
@@ -17,57 +17,33 @@ describe Cointrader::Client do
|
|
17
17
|
subject.market_sell(total_amount: 1)
|
18
18
|
end
|
19
19
|
|
20
|
-
def safe_limit_buy
|
21
|
-
VCR.use_cassette('limit_buy', &method(:limit_buy))
|
22
|
-
end
|
23
|
-
|
24
|
-
def safe_limit_sell
|
25
|
-
VCR.use_cassette('limit_sell', &method(:limit_sell))
|
26
|
-
end
|
27
|
-
|
28
|
-
def safe_market_buy
|
29
|
-
VCR.use_cassette('market_buy', &method(:market_buy))
|
30
|
-
end
|
31
|
-
|
32
|
-
def safe_market_sell
|
33
|
-
VCR.use_cassette('market_sell', &method(:market_sell))
|
34
|
-
end
|
35
|
-
|
36
20
|
describe 'stats' do
|
37
21
|
describe '#symbol' do
|
38
22
|
it 'returns supported currencies' do
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
expect(response['data'][0]['name']).to eq 'Bitcoin (BTC)'
|
43
|
-
end
|
23
|
+
response = subject.symbol
|
24
|
+
expect_success(response)
|
25
|
+
expect(response['data'][0]['name']).to eq 'Bitcoin (BTC)'
|
44
26
|
end
|
45
27
|
end
|
46
28
|
|
47
29
|
describe '#stats_24h' do
|
48
30
|
it 'returns 24 hour sliding statistics' do
|
49
|
-
|
50
|
-
|
51
|
-
expect_success(response)
|
52
|
-
end
|
31
|
+
response = subject.stats_24h
|
32
|
+
expect_success(response)
|
53
33
|
end
|
54
34
|
end
|
55
35
|
|
56
36
|
describe '#stats_7d' do
|
57
37
|
it 'returns 7 day sliding statistics' do
|
58
|
-
|
59
|
-
|
60
|
-
expect_success(response)
|
61
|
-
end
|
38
|
+
response = subject.stats_7d
|
39
|
+
expect_success(response)
|
62
40
|
end
|
63
41
|
end
|
64
42
|
|
65
43
|
describe '#orders' do
|
66
44
|
it 'returns open orders' do
|
67
|
-
|
68
|
-
|
69
|
-
expect_success(response)
|
70
|
-
end
|
45
|
+
response = subject.orders
|
46
|
+
expect_success(response)
|
71
47
|
end
|
72
48
|
end
|
73
49
|
end
|
@@ -75,21 +51,17 @@ describe Cointrader::Client do
|
|
75
51
|
describe 'account' do
|
76
52
|
describe '#balance' do
|
77
53
|
it 'returns a balance' do
|
78
|
-
|
79
|
-
response = subject.balance
|
54
|
+
response = subject.balance
|
80
55
|
|
81
|
-
|
82
|
-
|
83
|
-
end
|
56
|
+
expect_success(response)
|
57
|
+
expect(response['data']['BTC']['available']).not_to be_nil
|
84
58
|
end
|
85
59
|
end
|
86
60
|
|
87
61
|
describe '#tradehistory' do
|
88
62
|
it 'returns trade history' do
|
89
|
-
|
90
|
-
|
91
|
-
expect_success(response)
|
92
|
-
end
|
63
|
+
response = subject.tradehistory
|
64
|
+
expect_success(response)
|
93
65
|
end
|
94
66
|
end
|
95
67
|
end
|
@@ -97,74 +69,72 @@ describe Cointrader::Client do
|
|
97
69
|
describe 'order' do
|
98
70
|
describe '#limit_buy' do
|
99
71
|
it 'returns an order' do
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
72
|
+
response = limit_buy
|
73
|
+
expect_success(response)
|
74
|
+
expect(response['data']['id']).not_to be_nil
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'throws an error when there are insufficient funds' do
|
78
|
+
expect { subject.limit_buy(price: 1_000_000, total_quantity: 1) }.to raise_error(Cointrader::InsufficientFunds)
|
105
79
|
end
|
106
80
|
end
|
107
81
|
|
108
82
|
describe '#limit_sell' do
|
109
83
|
it 'returns an order' do
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
expect(response['data']['id']).not_to be_nil
|
114
|
-
end
|
84
|
+
response = limit_sell
|
85
|
+
expect_success(response)
|
86
|
+
expect(response['data']['id']).not_to be_nil
|
115
87
|
end
|
116
88
|
end
|
117
89
|
|
118
90
|
describe '#cancel' do
|
119
|
-
let(:order) {
|
91
|
+
let(:order) { limit_buy }
|
120
92
|
|
121
|
-
it 'cancels
|
122
|
-
|
123
|
-
|
124
|
-
expect_success(response)
|
125
|
-
# expect(response['data']['id']).not_to be_nil
|
126
|
-
# expect(response['data']['currency_pair']).not_to be_nil
|
127
|
-
end
|
93
|
+
it 'cancels an order' do
|
94
|
+
response = subject.cancel(order_id: order['data']['id'])
|
95
|
+
expect_success(response)
|
128
96
|
end
|
129
97
|
end
|
130
98
|
|
131
99
|
describe '#list' do
|
132
|
-
|
133
|
-
|
100
|
+
context 'when there are orders' do
|
101
|
+
let(:order) { limit_buy }
|
102
|
+
after { subject.cancel(order_id: order['data']['id'] )}
|
103
|
+
|
104
|
+
it 'lists open limit orders' do
|
105
|
+
order
|
134
106
|
response = subject.list
|
135
107
|
expect_success(response)
|
136
|
-
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context 'when there are no orders' do
|
112
|
+
it 'throws an error' do
|
113
|
+
expect { subject.list }.to raise_error(Cointrader::NoOpenOrders)
|
137
114
|
end
|
138
115
|
end
|
139
116
|
end
|
140
117
|
|
141
118
|
describe '#market_buy' do
|
142
119
|
it 'returns an order' do
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
expect(response['message']).not_to eq('Unauthorized')
|
147
|
-
end
|
120
|
+
response = market_buy
|
121
|
+
expect_success(response)
|
122
|
+
expect(response['message']).not_to eq('Unauthorized')
|
148
123
|
end
|
149
124
|
end
|
150
125
|
|
151
126
|
describe '#market_sell' do
|
152
127
|
it 'returns an order' do
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
expect(response['message']).not_to eq('Unauthorized')
|
157
|
-
end
|
128
|
+
response = market_sell
|
129
|
+
expect_success(response)
|
130
|
+
expect(response['message']).not_to eq('Unauthorized')
|
158
131
|
end
|
159
132
|
end
|
160
133
|
|
161
134
|
describe '#trades' do
|
162
135
|
it 'lists recent trades executed' do
|
163
|
-
|
164
|
-
|
165
|
-
expect_success(response)
|
166
|
-
# expect(response['data'][0]['price'])
|
167
|
-
end
|
136
|
+
response = subject.trades
|
137
|
+
expect_success(response)
|
168
138
|
end
|
169
139
|
end
|
170
140
|
end
|
@@ -5,8 +5,8 @@ http_interactions:
|
|
5
5
|
uri: https://sandbox.cointrader.net/api4/account/balance
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-06
|
9
|
-
|
8
|
+
string: '{"secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-07-06
|
9
|
+
00:33:09 UTC"}'
|
10
10
|
headers:
|
11
11
|
Accept:
|
12
12
|
- "*/*; q=0.5, application/xml"
|
@@ -17,7 +17,7 @@ http_interactions:
|
|
17
17
|
X-Auth:
|
18
18
|
- nCsNvmrxTpYFnJQyU16gq6R9ncOUA6UhF4wZnuf7IqkL
|
19
19
|
X-Auth-Hash:
|
20
|
-
-
|
20
|
+
- e6bb80adc0eaaa0c1b6de259208d310034606062bc0c6e9d27a892364d08c6e8
|
21
21
|
Content-Length:
|
22
22
|
- '87'
|
23
23
|
User-Agent:
|
@@ -28,7 +28,7 @@ http_interactions:
|
|
28
28
|
message: OK
|
29
29
|
headers:
|
30
30
|
Date:
|
31
|
-
-
|
31
|
+
- Mon, 06 Jul 2015 00:33:10 GMT
|
32
32
|
Server:
|
33
33
|
- Apache
|
34
34
|
X-Frame-Options:
|
@@ -40,7 +40,7 @@ http_interactions:
|
|
40
40
|
X-Powered-By:
|
41
41
|
- ''
|
42
42
|
Set-Cookie:
|
43
|
-
- CTXIDSCK=
|
43
|
+
- CTXIDSCK=4f9kvstmt2ff4r5i4i42ssv4q0; path=/; HttpOnly
|
44
44
|
Expires:
|
45
45
|
- Thu, 19 Nov 1981 08:52:00 GMT
|
46
46
|
Cache-Control:
|
@@ -62,5 +62,5 @@ http_interactions:
|
|
62
62
|
EnMS84BKlHSUUhJLEpWsqpWcQpxBVGJZYmZOYlIOSLWBngEUANXl58Vn5Oek
|
63
63
|
oAuX5Jck5qAK1uoohQa7YDMMwxg0A0BanR3J1FpbywUAkRGfN/oAAAA=
|
64
64
|
http_version:
|
65
|
-
recorded_at:
|
65
|
+
recorded_at: Mon, 06 Jul 2015 00:33:11 GMT
|
66
66
|
recorded_with: VCR 2.9.3
|
@@ -5,8 +5,8 @@ http_interactions:
|
|
5
5
|
uri: https://sandbox.cointrader.net/api4/account/tradehistory/BTCUSD
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-06
|
9
|
-
|
8
|
+
string: '{"secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-07-06
|
9
|
+
00:33:11 UTC"}'
|
10
10
|
headers:
|
11
11
|
Accept:
|
12
12
|
- "*/*; q=0.5, application/xml"
|
@@ -17,7 +17,7 @@ http_interactions:
|
|
17
17
|
X-Auth:
|
18
18
|
- nCsNvmrxTpYFnJQyU16gq6R9ncOUA6UhF4wZnuf7IqkL
|
19
19
|
X-Auth-Hash:
|
20
|
-
-
|
20
|
+
- 70b3415aa79e305dd4bbc7035576a776fc19e79f78a19bb11f3348b0d3286774
|
21
21
|
Content-Length:
|
22
22
|
- '87'
|
23
23
|
User-Agent:
|
@@ -28,7 +28,7 @@ http_interactions:
|
|
28
28
|
message: OK
|
29
29
|
headers:
|
30
30
|
Date:
|
31
|
-
-
|
31
|
+
- Mon, 06 Jul 2015 00:33:13 GMT
|
32
32
|
Server:
|
33
33
|
- Apache
|
34
34
|
X-Frame-Options:
|
@@ -40,7 +40,7 @@ http_interactions:
|
|
40
40
|
X-Powered-By:
|
41
41
|
- ''
|
42
42
|
Set-Cookie:
|
43
|
-
- CTXIDSCK=
|
43
|
+
- CTXIDSCK=vdddf8frh65pplqpfcakv5lfg4; path=/; HttpOnly
|
44
44
|
Expires:
|
45
45
|
- Thu, 19 Nov 1981 08:52:00 GMT
|
46
46
|
Cache-Control:
|
@@ -62,5 +62,5 @@ http_interactions:
|
|
62
62
|
yiWmpypZKfnlKwQkFpcohBQlpqQWK7gBlaQo6SilJJYkKllFx9ZyAQBQ0dFf
|
63
63
|
TAAAAA==
|
64
64
|
http_version:
|
65
|
-
recorded_at:
|
65
|
+
recorded_at: Mon, 06 Jul 2015 00:33:14 GMT
|
66
66
|
recorded_with: VCR 2.9.3
|
data/spec/fixtures/vcr_cassettes/{cancel.yml → Cointrader_Client/order/_cancel/cancels_an_order.yml}
RENAMED
@@ -2,11 +2,11 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: https://sandbox.cointrader.net/api4/order/BTCUSD/
|
5
|
+
uri: https://sandbox.cointrader.net/api4/order/BTCUSD/buy
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"
|
9
|
-
|
8
|
+
string: '{"total_quantity":"1.00000000","price":"10.00","secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-07-06
|
9
|
+
00:33:24 UTC"}'
|
10
10
|
headers:
|
11
11
|
Accept:
|
12
12
|
- "*/*; q=0.5, application/xml"
|
@@ -17,9 +17,9 @@ http_interactions:
|
|
17
17
|
X-Auth:
|
18
18
|
- nCsNvmrxTpYFnJQyU16gq6R9ncOUA6UhF4wZnuf7IqkL
|
19
19
|
X-Auth-Hash:
|
20
|
-
-
|
20
|
+
- 6bdad317ad5711f68b05097d42aa897691ef2d9a72a4e5eab3658d00ddc703d5
|
21
21
|
Content-Length:
|
22
|
-
- '
|
22
|
+
- '133'
|
23
23
|
User-Agent:
|
24
24
|
- Ruby
|
25
25
|
response:
|
@@ -28,7 +28,7 @@ http_interactions:
|
|
28
28
|
message: OK
|
29
29
|
headers:
|
30
30
|
Date:
|
31
|
-
-
|
31
|
+
- Mon, 06 Jul 2015 00:33:26 GMT
|
32
32
|
Server:
|
33
33
|
- Apache
|
34
34
|
X-Frame-Options:
|
@@ -40,7 +40,7 @@ http_interactions:
|
|
40
40
|
X-Powered-By:
|
41
41
|
- ''
|
42
42
|
Set-Cookie:
|
43
|
-
- CTXIDSCK=
|
43
|
+
- CTXIDSCK=a0mojedrbeebc6pr9poeodriu7; path=/; HttpOnly
|
44
44
|
Expires:
|
45
45
|
- Thu, 19 Nov 1981 08:52:00 GMT
|
46
46
|
Cache-Control:
|
@@ -52,15 +52,15 @@ http_interactions:
|
|
52
52
|
Content-Encoding:
|
53
53
|
- gzip
|
54
54
|
Content-Length:
|
55
|
-
- '
|
55
|
+
- '131'
|
56
56
|
Content-Type:
|
57
57
|
- application/json
|
58
58
|
body:
|
59
59
|
encoding: ASCII-8BIT
|
60
60
|
string: !binary |-
|
61
|
-
|
62
|
-
|
63
|
-
|
61
|
+
H4sIAAAAAAAAA6tWKi5NTk4tLlaySkvMKU7VUcoFchLTU5WslJxKKxX8i1JS
|
62
|
+
ixRci4ryi6wUPPOKS9PSMpMzU/NKFNxK81KK9RSCUnMTM/My89KtFAz0DKBA
|
63
|
+
QUlHKSWxJFHJqlopFaTXOT8FZKKFgZESsg0kGFhbywUAxhnDjqwAAAA=
|
64
64
|
http_version:
|
65
|
-
recorded_at:
|
65
|
+
recorded_at: Mon, 06 Jul 2015 00:33:27 GMT
|
66
66
|
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://sandbox.cointrader.net/api4/order/BTCUSD/buy
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"total_quantity":"1.00000000","price":"10.00","secret":"2MlxW8mUU9MG4bvq7C6M4PSd5J8SaauW4H2dXnyJyAcN","t":"2015-07-06
|
9
|
+
00:33:14 UTC"}'
|
10
|
+
headers:
|
11
|
+
Accept:
|
12
|
+
- "*/*; q=0.5, application/xml"
|
13
|
+
Accept-Encoding:
|
14
|
+
- gzip, deflate
|
15
|
+
Content-Type:
|
16
|
+
- application/json
|
17
|
+
X-Auth:
|
18
|
+
- nCsNvmrxTpYFnJQyU16gq6R9ncOUA6UhF4wZnuf7IqkL
|
19
|
+
X-Auth-Hash:
|
20
|
+
- 7684a274dc8e01dcc26b8098399b9f1280bc572ccd9bf0460f051749291f29b4
|
21
|
+
Content-Length:
|
22
|
+
- '133'
|
23
|
+
User-Agent:
|
24
|
+
- Ruby
|
25
|
+
response:
|
26
|
+
status:
|
27
|
+
code: 200
|
28
|
+
message: OK
|
29
|
+
headers:
|
30
|
+
Date:
|
31
|
+
- Mon, 06 Jul 2015 00:33:16 GMT
|
32
|
+
Server:
|
33
|
+
- Apache
|
34
|
+
X-Frame-Options:
|
35
|
+
- SAMEORIGIN
|
36
|
+
X-Xss-Protection:
|
37
|
+
- 1; mode=block
|
38
|
+
X-Content-Type-Options:
|
39
|
+
- nosniff
|
40
|
+
X-Powered-By:
|
41
|
+
- ''
|
42
|
+
Set-Cookie:
|
43
|
+
- CTXIDSCK=pna8o9aoelska2eeltndlfr9e5; path=/; HttpOnly
|
44
|
+
Expires:
|
45
|
+
- Thu, 19 Nov 1981 08:52:00 GMT
|
46
|
+
Cache-Control:
|
47
|
+
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|
48
|
+
Pragma:
|
49
|
+
- no-cache
|
50
|
+
Vary:
|
51
|
+
- Accept-Encoding
|
52
|
+
Content-Encoding:
|
53
|
+
- gzip
|
54
|
+
Content-Length:
|
55
|
+
- '131'
|
56
|
+
Content-Type:
|
57
|
+
- application/json
|
58
|
+
body:
|
59
|
+
encoding: ASCII-8BIT
|
60
|
+
string: !binary |-
|
61
|
+
H4sIAAAAAAAAA6tWKi5NTk4tLlaySkvMKU7VUcoFchLTU5WslJxKKxX8i1JS
|
62
|
+
ixRci4ryi6wUPPOKS9PSMpMzU/NKFNxK81KK9RSCUnMTM/My89KtFAz0DKBA
|
63
|
+
QUlHKSWxJFHJqlopFaTXOT8FZKKFgZESsg0kGFhbywUAxhnDjqwAAAA=
|
64
|
+
http_version:
|
65
|
+
recorded_at: Mon, 06 Jul 2015 00:33:17 GMT
|
66
|
+
recorded_with: VCR 2.9.3
|