stocks_exchange_api_client 2.0.2 → 2.1.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3b9f4a242d3ee4b520912a52f1081c358b5ea19beb300b4d47a3aab67a798d4
|
4
|
+
data.tar.gz: ffda3c3fce465e7e6b76870322d7586029222e81eb4cb2429f06c09f344f0e5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '09413046673714035f8509efa697c16b463997bbeb2591cf0b1a4468f347ddada2d1e4f63f3f255c984afec29874da7a2857444e953aff74a8062d9778bb3d4a'
|
7
|
+
data.tar.gz: 75b96003a8fad63a4968007f704a341dc217e9ccc6527c068105d240a463473c04e5072805378f14909c1f149bb194155ba0e405b9fc6f63b1c18cd48568990d
|
data/README.md
CHANGED
@@ -12,7 +12,6 @@ STEX (former Stocks.Exchange) provides all the core exchange functionality, and
|
|
12
12
|
## General
|
13
13
|
The base URL for all the requests other than public methods is
|
14
14
|
```
|
15
|
-
https://app.stocks.exchange/api2
|
16
15
|
https://app.stex.com/api2
|
17
16
|
https://api3.stex.com
|
18
17
|
```
|
@@ -115,31 +115,36 @@ module StocksExchangeApiClient
|
|
115
115
|
end
|
116
116
|
|
117
117
|
def get_token
|
118
|
-
if
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
118
|
+
if !configuration.s2s
|
119
|
+
if File.exist?(JSON_SETTINGS)
|
120
|
+
current_token = JSON.parse(File.read(JSON_SETTINGS))
|
121
|
+
else
|
122
|
+
current_token = {'access_token' => configuration.option[:token_object][:access_token],
|
123
|
+
'refresh_token' => configuration.option[:token_object][:refresh_token],
|
124
|
+
'expires_in' => nil,
|
125
|
+
'expires_in_date' => nil}
|
126
|
+
end
|
127
|
+
if !current_token.nil? && !current_token['expires_in_date'].nil?
|
128
|
+
return current_token['access_token'] if DateTime.parse(current_token['expires_in_date']).to_datetime > DateTime.now.to_datetime
|
129
|
+
end
|
130
|
+
begin
|
131
|
+
response = HTTParty.post(configuration.option[:access_token_url], body: {
|
132
|
+
grant_type: 'refresh_token',
|
133
|
+
refresh_token: current_token['refresh_token'],
|
134
|
+
client_id: configuration.option[:client_id],
|
135
|
+
client_secret: configuration.option[:client_secret],
|
136
|
+
scope: configuration.option[:scope]
|
137
|
+
}).body
|
138
|
+
current_token = JSON.parse(response)
|
139
|
+
current_token['expires_in_date'] = Time.at(Time.now.to_i + current_token['expires_in']).to_s
|
140
|
+
File.write(JSON_SETTINGS, current_token.to_json)
|
141
|
+
current_token['access_token']
|
142
|
+
rescue StandardError => e
|
143
|
+
puts "Rescued: #{e.inspect}"
|
144
|
+
end
|
128
145
|
end
|
129
|
-
|
130
|
-
|
131
|
-
grant_type: 'refresh_token',
|
132
|
-
refresh_token: current_token['refresh_token'],
|
133
|
-
client_id: configuration.option[:client_id],
|
134
|
-
client_secret: configuration.option[:client_secret],
|
135
|
-
scope: configuration.option[:scope]
|
136
|
-
}).body
|
137
|
-
current_token = JSON.parse(response)
|
138
|
-
current_token['expires_in_date'] = Time.at(Time.now.to_i + current_token['expires_in']).to_s
|
139
|
-
File.write(JSON_SETTINGS, current_token.to_json)
|
140
|
-
current_token['access_token']
|
141
|
-
rescue StandardError => e
|
142
|
-
puts "Rescued: #{e.inspect}"
|
146
|
+
if configuration.s2s
|
147
|
+
configuration.option[:token_object][:access_token]
|
143
148
|
end
|
144
149
|
end
|
145
150
|
|
@@ -1,12 +1,20 @@
|
|
1
|
+
require 'stocks_exchange_api_client/errors/configuration_error'
|
2
|
+
|
1
3
|
module StocksExchangeApiClient
|
2
4
|
class Configuration
|
3
|
-
URL_V2 = 'https://app.
|
5
|
+
URL_V2 = 'https://app.stex.com/api2'.freeze
|
4
6
|
URL_V3 = 'https://api3.stex.com'.freeze
|
5
|
-
attr_accessor :url, :option, :use_version
|
7
|
+
attr_accessor :url, :option, :use_version, :s2s
|
6
8
|
|
7
|
-
def initialize
|
8
|
-
|
9
|
-
|
9
|
+
def initialize(url: URL_V2, option: {}, use_version: 2, s2s: false)
|
10
|
+
if use_version == 3
|
11
|
+
@url||= URL_V3
|
12
|
+
else
|
13
|
+
@url||= URL_V3
|
14
|
+
end
|
15
|
+
@option||= option
|
16
|
+
@use_version||= use_version
|
17
|
+
@s2s||= s2s
|
10
18
|
end
|
11
19
|
|
12
20
|
def validate!
|
@@ -15,11 +23,16 @@ module StocksExchangeApiClient
|
|
15
23
|
raise Errors::ConfigurationError
|
16
24
|
end
|
17
25
|
end
|
18
|
-
if use_version == 3
|
26
|
+
if use_version == 3 && !s2s
|
19
27
|
unless option[:client_id] && option[:client_secret] && option[:token_object][:access_token] && option[:token_object][:refresh_token]
|
20
28
|
raise Errors::ConfigurationError
|
21
29
|
end
|
22
30
|
end
|
31
|
+
if use_version == 3 && s2s
|
32
|
+
unless option[:token_object][:access_token]
|
33
|
+
raise Errors::ConfigurationError
|
34
|
+
end
|
35
|
+
end
|
23
36
|
end
|
24
37
|
end
|
25
38
|
end
|
@@ -2,7 +2,7 @@ module StocksExchangeApiClient
|
|
2
2
|
module Errors
|
3
3
|
class ConfigurationError < StandardError
|
4
4
|
def initialize
|
5
|
-
super 'Not all config vars were set. Stocks Exchange requires API key and API secret. Get this fields on url https://app.
|
5
|
+
super 'Not all config vars were set. Stocks Exchange requires API key and API secret. Get this fields on url https://app.stex.com/profile/settings'
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stocks_exchange_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stocks Exchange
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: openssl
|