snaptrade 1.16.0 → 1.16.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.
@@ -19,7 +19,7 @@ Delete SnapTrade user
19
19
  ```ruby
20
20
  require 'snaptrade'
21
21
 
22
- SnapTrade.client_id = "YOUR_CLIENT_ID"
22
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
23
23
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
24
24
 
25
25
  user_id = "John.doe@snaptrade.com"
@@ -74,7 +74,7 @@ Generate encrypted JWT token
74
74
  ```ruby
75
75
  require 'snaptrade'
76
76
 
77
- SnapTrade.client_id = "YOUR_CLIENT_ID"
77
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
78
78
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
79
79
 
80
80
  user_id = "John.doe@snaptrade.com"
@@ -134,7 +134,7 @@ List SnapTrade users
134
134
  ```ruby
135
135
  require 'snaptrade'
136
136
 
137
- SnapTrade.client_id = "YOUR_CLIENT_ID"
137
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
138
138
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
139
139
 
140
140
 
@@ -181,7 +181,7 @@ Login user & generate connection link
181
181
  ```ruby
182
182
  require 'snaptrade'
183
183
 
184
- SnapTrade.client_id = "YOUR_CLIENT_ID"
184
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
185
185
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
186
186
 
187
187
  user_id = "John.doe@snaptrade.com"
@@ -262,7 +262,7 @@ Create SnapTrade user
262
262
  ```ruby
263
263
  require 'snaptrade'
264
264
 
265
- SnapTrade.client_id = "YOUR_CLIENT_ID"
265
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
266
266
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
267
267
 
268
268
  user_id = "snaptrade-user-123"
@@ -18,7 +18,7 @@ Get brokerage authorization details
18
18
  ```ruby
19
19
  require 'snaptrade'
20
20
 
21
- SnapTrade.client_id = "YOUR_CLIENT_ID"
21
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
22
22
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
23
23
 
24
24
  authorization_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
@@ -83,7 +83,7 @@ List all brokerage authorizations for the user
83
83
  ```ruby
84
84
  require 'snaptrade'
85
85
 
86
- SnapTrade.client_id = "YOUR_CLIENT_ID"
86
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
87
87
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
88
88
 
89
89
  user_id = "John.doe@snaptrade.com"
@@ -143,7 +143,7 @@ Delete brokerage authorization
143
143
  ```ruby
144
144
  require 'snaptrade'
145
145
 
146
- SnapTrade.client_id = "YOUR_CLIENT_ID"
146
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
147
147
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
148
148
 
149
149
  authorization_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
@@ -207,7 +207,7 @@ List all session events for the partner
207
207
  ```ruby
208
208
  require 'snaptrade'
209
209
 
210
- SnapTrade.client_id = "YOUR_CLIENT_ID"
210
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
211
211
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
212
212
 
213
213
  partner_client_id = "SNAPTRADETEST"
data/docs/ErrorLogsApi.md CHANGED
@@ -15,7 +15,7 @@ Retrieve error logs on behalf of your SnapTrade users
15
15
  ```ruby
16
16
  require 'snaptrade'
17
17
 
18
- SnapTrade.client_id = "YOUR_CLIENT_ID"
18
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
19
19
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
20
20
 
21
21
  user_id = "John.doe@snaptrade.com"
@@ -1,20 +1,20 @@
1
- # SnapTrade::MonthlyDividends
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
- | **dividends** | [**Array<DividendAtDate>**](DividendAtDate.md) | | [optional] |
9
-
10
- ## Example
11
-
12
- ```ruby
13
- require 'snaptrade'
14
-
15
- instance = SnapTrade::MonthlyDividends.new(
16
- date: Sun Jan 23 16:00:00 PST 2022,
17
- dividends: null
18
- )
19
- ```
20
-
1
+ # SnapTrade::MonthlyDividends
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
+ | **dividends** | [**Array<DividendAtDate>**](DividendAtDate.md) | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'snaptrade'
14
+
15
+ instance = SnapTrade::MonthlyDividends.new(
16
+ date: Mon Jan 24 00:00:00 UTC 2022,
17
+ dividends: null
18
+ )
19
+ ```
20
+
@@ -1,22 +1,22 @@
1
- # SnapTrade::NetContributions
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
- | **contributions** | **Float** | | [optional] |
9
- | **currency** | **String** | | [optional] |
10
-
11
- ## Example
12
-
13
- ```ruby
14
- require 'snaptrade'
15
-
16
- instance = SnapTrade::NetContributions.new(
17
- date: Sun Jan 23 16:00:00 PST 2022,
18
- contributions: 524.74,
19
- currency: CAD
20
- )
21
- ```
22
-
1
+ # SnapTrade::NetContributions
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
+ | **contributions** | **Float** | | [optional] |
9
+ | **currency** | **String** | | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'snaptrade'
15
+
16
+ instance = SnapTrade::NetContributions.new(
17
+ date: Mon Jan 24 00:00:00 UTC 2022,
18
+ contributions: 524.74,
19
+ currency: CAD
20
+ )
21
+ ```
22
+
data/docs/OptionsApi.md CHANGED
@@ -19,7 +19,7 @@ Creates an option strategy object that will be used to place an option strategy
19
19
  ```ruby
20
20
  require 'snaptrade'
21
21
 
22
- SnapTrade.client_id = "YOUR_CLIENT_ID"
22
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
23
23
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
24
24
 
25
25
  underlying_symbol_id = "2bcd7cc3-e922-4976-bce1-9858296801c3"
@@ -109,7 +109,7 @@ Get the options chain
109
109
  ```ruby
110
110
  require 'snaptrade'
111
111
 
112
- SnapTrade.client_id = "YOUR_CLIENT_ID"
112
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
113
113
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
114
114
 
115
115
  user_id = "John.doe@snaptrade.com"
@@ -179,7 +179,7 @@ Get latest market data of option strategy
179
179
  ```ruby
180
180
  require 'snaptrade'
181
181
 
182
- SnapTrade.client_id = "YOUR_CLIENT_ID"
182
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
183
183
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
184
184
 
185
185
  user_id = "John.doe@snaptrade.com"
@@ -249,7 +249,7 @@ Get the options holdings in the account
249
249
  ```ruby
250
250
  require 'snaptrade'
251
251
 
252
- SnapTrade.client_id = "YOUR_CLIENT_ID"
252
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
253
253
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
254
254
 
255
255
  user_id = "John.doe@snaptrade.com"
@@ -314,7 +314,7 @@ Place an option strategy order on the brokerage
314
314
  ```ruby
315
315
  require 'snaptrade'
316
316
 
317
- SnapTrade.client_id = "YOUR_CLIENT_ID"
317
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
318
318
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
319
319
 
320
320
  order_type = "Limit"
data/docs/PastValue.md CHANGED
@@ -1,22 +1,22 @@
1
- # SnapTrade::PastValue
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
- | **value** | **Float** | | [optional] |
9
- | **currency** | **String** | | [optional] |
10
-
11
- ## Example
12
-
13
- ```ruby
14
- require 'snaptrade'
15
-
16
- instance = SnapTrade::PastValue.new(
17
- date: Sun Jan 23 16:00:00 PST 2022,
18
- value: 52.74,
19
- currency: CAD
20
- )
21
- ```
22
-
1
+ # SnapTrade::PastValue
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **date** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
+ | **value** | **Float** | | [optional] |
9
+ | **currency** | **String** | | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'snaptrade'
15
+
16
+ instance = SnapTrade::PastValue.new(
17
+ date: Mon Jan 24 00:00:00 UTC 2022,
18
+ value: 52.74,
19
+ currency: CAD
20
+ )
21
+ ```
22
+
@@ -25,7 +25,7 @@ Return the exchange rate of a currency pair
25
25
  ```ruby
26
26
  require 'snaptrade'
27
27
 
28
- SnapTrade.client_id = "YOUR_CLIENT_ID"
28
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
29
29
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
30
30
 
31
31
  currency_pair = "currencyPair_example"
@@ -80,7 +80,7 @@ Get metadata related to Snaptrade partner
80
80
  ```ruby
81
81
  require 'snaptrade'
82
82
 
83
- SnapTrade.client_id = "YOUR_CLIENT_ID"
83
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
84
84
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
85
85
 
86
86
 
@@ -127,7 +127,7 @@ List of all security types.
127
127
  ```ruby
128
128
  require 'snaptrade'
129
129
 
130
- SnapTrade.client_id = "YOUR_CLIENT_ID"
130
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
131
131
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
132
132
 
133
133
 
@@ -174,7 +174,7 @@ List exchanges
174
174
  ```ruby
175
175
  require 'snaptrade'
176
176
 
177
- SnapTrade.client_id = "YOUR_CLIENT_ID"
177
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
178
178
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
179
179
 
180
180
 
@@ -221,7 +221,7 @@ Search for symbols
221
221
  ```ruby
222
222
  require 'snaptrade'
223
223
 
224
- SnapTrade.client_id = "YOUR_CLIENT_ID"
224
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
225
225
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
226
226
 
227
227
  substring = "apple"
@@ -276,7 +276,7 @@ Get details of a symbol by the ticker
276
276
  ```ruby
277
277
  require 'snaptrade'
278
278
 
279
- SnapTrade.client_id = "YOUR_CLIENT_ID"
279
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
280
280
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
281
281
 
282
282
  ticker = "ticker_example"
@@ -336,7 +336,7 @@ List of all brokerage authorization types
336
336
  ```ruby
337
337
  require 'snaptrade'
338
338
 
339
- SnapTrade.client_id = "YOUR_CLIENT_ID"
339
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
340
340
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
341
341
 
342
342
  brokerage = "QUESTRADE,ALPACA"
@@ -391,7 +391,7 @@ List brokerages
391
391
  ```ruby
392
392
  require 'snaptrade'
393
393
 
394
- SnapTrade.client_id = "YOUR_CLIENT_ID"
394
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
395
395
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
396
396
 
397
397
 
@@ -438,7 +438,7 @@ List currencies
438
438
  ```ruby
439
439
  require 'snaptrade'
440
440
 
441
- SnapTrade.client_id = "YOUR_CLIENT_ID"
441
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
442
442
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
443
443
 
444
444
 
@@ -485,7 +485,7 @@ List currency exchange rates
485
485
  ```ruby
486
486
  require 'snaptrade'
487
487
 
488
- SnapTrade.client_id = "YOUR_CLIENT_ID"
488
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
489
489
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
490
490
 
491
491
 
@@ -532,7 +532,7 @@ Search for symbols available in an account
532
532
  ```ruby
533
533
  require 'snaptrade'
534
534
 
535
- SnapTrade.client_id = "YOUR_CLIENT_ID"
535
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
536
536
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
537
537
 
538
538
  user_id = "John.doe@snaptrade.com"
@@ -1,22 +1,22 @@
1
- # SnapTrade::SubPeriodReturnRate
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **period_start** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
- | **period_end** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
9
- | **rate_of_return** | **Float** | The return rate for the given period | [optional] |
10
-
11
- ## Example
12
-
13
- ```ruby
14
- require 'snaptrade'
15
-
16
- instance = SnapTrade::SubPeriodReturnRate.new(
17
- period_start: Sun Jan 23 16:00:00 PST 2022,
18
- period_end: Sun Jan 23 16:00:00 PST 2022,
19
- rate_of_return: 0.012312367452
20
- )
21
- ```
22
-
1
+ # SnapTrade::SubPeriodReturnRate
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **period_start** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
8
+ | **period_end** | **Date** | Date used to specify timeframe for a reporting call (in YYYY-MM-DD format) | [optional] |
9
+ | **rate_of_return** | **Float** | The return rate for the given period | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'snaptrade'
15
+
16
+ instance = SnapTrade::SubPeriodReturnRate.new(
17
+ period_start: Mon Jan 24 00:00:00 UTC 2022,
18
+ period_end: Mon Jan 24 00:00:00 UTC 2022,
19
+ rate_of_return: 0.012312367452
20
+ )
21
+ ```
22
+
data/docs/TradingApi.md CHANGED
@@ -20,7 +20,7 @@ Cancel open order in account
20
20
  ```ruby
21
21
  require 'snaptrade'
22
22
 
23
- SnapTrade.client_id = "YOUR_CLIENT_ID"
23
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
24
24
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
25
25
 
26
26
  user_id = "John.doe@snaptrade.com"
@@ -90,7 +90,7 @@ Check impact of trades on account.
90
90
  ```ruby
91
91
  require 'snaptrade'
92
92
 
93
- SnapTrade.client_id = "YOUR_CLIENT_ID"
93
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
94
94
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
95
95
 
96
96
  user_id = "John.doe@snaptrade.com"
@@ -183,7 +183,7 @@ Get symbol quotes
183
183
  ```ruby
184
184
  require 'snaptrade'
185
185
 
186
- SnapTrade.client_id = "YOUR_CLIENT_ID"
186
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
187
187
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
188
188
 
189
189
  user_id = "John.doe@snaptrade.com"
@@ -258,7 +258,7 @@ Place a trade with NO validation.
258
258
  ```ruby
259
259
  require 'snaptrade'
260
260
 
261
- SnapTrade.client_id = "YOUR_CLIENT_ID"
261
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
262
262
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
263
263
 
264
264
  user_id = "John.doe@snaptrade.com"
@@ -351,7 +351,7 @@ Place a OCO (One Cancels Other) order
351
351
  ```ruby
352
352
  require 'snaptrade'
353
353
 
354
- SnapTrade.client_id = "YOUR_CLIENT_ID"
354
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
355
355
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
356
356
 
357
357
  user_id = "John.doe@snaptrade.com"
@@ -420,7 +420,7 @@ Place order
420
420
  ```ruby
421
421
  require 'snaptrade'
422
422
 
423
- SnapTrade.client_id = "YOUR_CLIENT_ID"
423
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
424
424
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
425
425
 
426
426
  trade_id = "tradeId_example"
@@ -18,7 +18,7 @@ Returns activities (transactions) for a user. Specifing start and end date is hi
18
18
  ```ruby
19
19
  require 'snaptrade'
20
20
 
21
- SnapTrade.client_id = "YOUR_CLIENT_ID"
21
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
22
22
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
23
23
 
24
24
  user_id = "John.doe@snaptrade.com"
@@ -105,7 +105,7 @@ Returns performance information (contributions, dividends, rate of return, etc)
105
105
  ```ruby
106
106
  require 'snaptrade'
107
107
 
108
- SnapTrade.client_id = "YOUR_CLIENT_ID"
108
+ SnapTrade.client_id = "YOUR_CLIENT_ID"
109
109
  SnapTrade.consumer_key = "YOUR_CONSUMER_KEY"
110
110
 
111
111
  start_date = "2022-01-24"
@@ -1,20 +1,20 @@
1
- # SnapTrade::TransactionsStatus
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **initial_sync_completed** | **Boolean** | | [optional] |
8
- | **last_successful_sync** | **Date** | Date in YYYY-MM-DD format or null | [optional] |
9
-
10
- ## Example
11
-
12
- ```ruby
13
- require 'snaptrade'
14
-
15
- instance = SnapTrade::TransactionsStatus.new(
16
- initial_sync_completed: null,
17
- last_successful_sync: Sun Jan 23 16:00:00 PST 2022
18
- )
19
- ```
20
-
1
+ # SnapTrade::TransactionsStatus
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **initial_sync_completed** | **Boolean** | | [optional] |
8
+ | **last_successful_sync** | **Date** | Date in YYYY-MM-DD format or null | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'snaptrade'
14
+
15
+ instance = SnapTrade::TransactionsStatus.new(
16
+ initial_sync_completed: null,
17
+ last_successful_sync: Mon Jan 24 00:00:00 UTC 2022
18
+ )
19
+ ```
20
+
@@ -1,32 +1,32 @@
1
-
2
- =begin
3
- #SnapTrade
4
-
5
- #Connect brokerage accounts to your app for live positions and trading
6
-
7
- The version of the OpenAPI document: 1.0.0
8
- Contact: api@snaptrade.com
9
-
10
- =end
11
-
12
- require 'base64'
13
- require 'openssl'
14
-
15
- module SnapTrade
16
- class ApiClientCustom
17
- def self.request_hook(request, configuration)
18
- request.params[:timestamp] = Time.now.to_i
19
- path = request.path[request.path.index('/api/v1/')..-1]
20
- query = Faraday::Utils.build_query(request.params)
21
- sig_object = {
22
- "content" => request.body.nil? || request.body.empty? ? nil : JSON.parse(request.body),
23
- "path" => path,
24
- "query" => query
25
- }
26
- sig_content = JSON.generate(sig_object, sort_by: :to_s)
27
- sig_digest = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA256.new, configuration.consumer_key, sig_content)
28
- signature = Base64.encode64(sig_digest).strip()
29
- request.headers[:Signature] = signature
30
- end
31
- end
32
- end
1
+
2
+ =begin
3
+ #SnapTrade
4
+
5
+ #Connect brokerage accounts to your app for live positions and trading
6
+
7
+ The version of the OpenAPI document: 1.0.0
8
+ Contact: api@snaptrade.com
9
+
10
+ =end
11
+
12
+ require 'base64'
13
+ require 'openssl'
14
+
15
+ module SnapTrade
16
+ class ApiClientCustom
17
+ def self.request_hook(request, configuration)
18
+ request.params[:timestamp] = Time.now.to_i
19
+ path = request.path[request.path.index('/api/v1/')..-1]
20
+ query = Faraday::Utils.build_query(request.params)
21
+ sig_object = {
22
+ "content" => request.body.nil? || request.body.empty? ? nil : JSON.parse(request.body),
23
+ "path" => path,
24
+ "query" => query
25
+ }
26
+ sig_content = JSON.generate(sig_object, sort_by: :to_s)
27
+ sig_digest = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA256.new, configuration.consumer_key, sig_content)
28
+ signature = Base64.encode64(sig_digest).strip()
29
+ request.headers[:Signature] = signature
30
+ end
31
+ end
32
+ end