snaptrade 3.0.14 → 3.0.15

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a6dc64b8ff8a139c23b0511432bff6df21f339ec733c733b1f1638429699bea
4
- data.tar.gz: 34c832c8103a87163bfc3f3ef9b17145afdbb7b4ed14ac2a3035bafd9eb4b098
3
+ metadata.gz: 6f4f6df70641bac0ea16b0095d5cc12b08b1f20d46bcf0eabe3e74d81f394284
4
+ data.tar.gz: 6111f68c8a76ba924318a9385a229929a99c0d78b6debbe3c2d5bd72d10f5dec
5
5
  SHA512:
6
- metadata.gz: 50cb208969843166c7a8933dc845cf0a2e6be7cc7f5b817b0962672dfb59077ec64d0569fe7cad787515c40c313628ddc75ba38e3e9b4a9d8a2137cda24fe020
7
- data.tar.gz: 362981604b16321e467d9e12712926e8ebd3a53f298a93773da1652cd08d0ad322a9e4fa4b27721d3bc03817687356a0f2b04e42f34e5219f274fd457ca54001
6
+ metadata.gz: 6b1980f6b8168d9ce003bc1d5f66bd96fbe5ccbadd75dff6fc0e9eb741f77addcc99e4073f9bc6aee6fcd1a530cf9e92c3f3e5a7a3f12875cfb9cbc11675cc1c
7
+ data.tar.gz: 361584ee67a2f7fe22f115da2ba939f78f03fa3320365e5feaa90b9ef2b4837ab4adb98e83146a6a31c0bcca759c66edcfc5e3c0b66c47161038748ee771fcfb
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Connect brokerage accounts to your app for live positions and trading
8
8
 
9
- [![npm](https://img.shields.io/badge/gem-v3.0.14-blue)](https://rubygems.org/gems/snaptrade/versions/3.0.14)
9
+ [![npm](https://img.shields.io/badge/gem-v3.0.15-blue)](https://rubygems.org/gems/snaptrade/versions/3.0.15)
10
10
  [![More Info](https://img.shields.io/badge/More%20Info-Click%20Here-orange)](https://snaptrade.com/)
11
11
 
12
12
  </div>
@@ -82,7 +82,7 @@ Connect brokerage accounts to your app for live positions and trading
82
82
  Add to Gemfile:
83
83
 
84
84
  ```ruby
85
- gem 'snaptrade', '~> 3.0.14'
85
+ gem 'snaptrade', '~> 3.0.15'
86
86
  ```
87
87
 
88
88
  ## Getting Started<a id="getting-started"></a>
@@ -23,7 +23,7 @@ module SnapTrade
23
23
  "path" => path,
24
24
  "query" => query
25
25
  }
26
- sig_content = JSON.generate(sig_object, sort_by: :to_s)
26
+ sig_content = JSON.generate(sig_object)
27
27
  sig_digest = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA256.new, configuration.consumer_key, sig_content)
28
28
  signature = Base64.encode64(sig_digest).strip()
29
29
  request.headers[:Signature] = signature
@@ -8,5 +8,5 @@ Contact: api@snaptrade.com
8
8
  =end
9
9
 
10
10
  module SnapTrade
11
- VERSION = '3.0.14'
11
+ VERSION = '3.0.15'
12
12
  end
@@ -27,7 +27,7 @@ describe SnapTrade::ConnectionAccount do
27
27
 
28
28
  describe '.openapi_discriminator_mapping' do
29
29
  it 'returns the key/values of the "mapping" property' do
30
- expect(described_class.openapi_discriminator_mapping.values.sort).to eq(described_class.openapi_one_of.sort)
30
+ expect(described_class.openapi_discriminator_mapping.values.uniq.sort).to eq(described_class.openapi_one_of.sort)
31
31
  end
32
32
  end
33
33
 
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ describe 'All account positions response deserialization' do
5
+ let(:payload) do
6
+ JSON.parse(File.read(File.join(__dir__, 'fixtures/all_account_positions.json')))
7
+ end
8
+ let(:body) { JSON.generate(payload) }
9
+ let(:configuration) do
10
+ SnapTrade::Configuration.new.tap do |config|
11
+ config.host = 'https://sdk-test.invalid'
12
+ config.client_id = 'TEST_CLIENT'
13
+ config.consumer_key = 'TEST_KEY'
14
+ end
15
+ end
16
+ let(:api_client) { SnapTrade::ApiClient.new(configuration) }
17
+ let(:api) { SnapTrade::AccountInformationApi.new(api_client) }
18
+ let(:arguments) do
19
+ { user_id: 12345, user_secret: 'TEST_SECRET', account_id: 'TEST_ACCOUNT' }
20
+ end
21
+ let(:stubs) do
22
+ Faraday::Adapter::Test::Stubs.new do |stub|
23
+ stub.get('/accounts/TEST_ACCOUNT/positions/all') do
24
+ [200, { 'content-type' => 'application/json' }, body]
25
+ end
26
+ end
27
+ end
28
+ let(:connection) do
29
+ Faraday.new(url: configuration.base_url) { |conn| conn.adapter :test, stubs }
30
+ end
31
+
32
+ before do
33
+ allow(api_client).to receive(:connection).and_return(connection)
34
+ end
35
+
36
+ after do
37
+ stubs.verify_stubbed_calls
38
+ end
39
+
40
+ [:get_all_account_positions, :get_all_account_positions_with_http_info].each do |operation|
41
+ context operation.to_s do
42
+ let(:data) do
43
+ result = api.public_send(operation, **arguments)
44
+ if operation == :get_all_account_positions_with_http_info
45
+ parsed, status, headers, response = result
46
+ expect(status).to eq(200)
47
+ expect(headers['content-type']).to eq('application/json')
48
+ expect(response.body).to eq(body)
49
+ parsed
50
+ else
51
+ result
52
+ end
53
+ end
54
+
55
+ it 'returns the full response and both bond instruments from a populated HTTP 200 body' do
56
+ expect(data).to be_a(SnapTrade::AllAccountPositionsResponse)
57
+ expect(data.data_freshness.as_of).to eq(Time.utc(2026, 9, 8, 11, 2, 57))
58
+ expect(data.results.length).to eq(2)
59
+ expect(data.results.map(&:units)).to eq([70.0, 70.0])
60
+ expect(data.results.map(&:price)).to eq([99.768, 100.025])
61
+ expect(data.results.map(&:cost_basis)).to eq([97.51, 100.25])
62
+ expect(data.results.map(&:instrument)).to all(be_a(SnapTrade::OtherInstrument))
63
+ expect(data.results.map { |position| position.instrument.kind }).to eq(['bond', 'bond'])
64
+ expect(data.results.map { |position| position.instrument.symbol }).to eq(['912797SA6', '91282CJT9'])
65
+ expect(data.to_hash[:results].map { |position| position[:instrument][:kind] }).to eq(['bond', 'bond'])
66
+ end
67
+
68
+ it 'keeps a response object when there are no positions' do
69
+ payload['results'] = []
70
+
71
+ expect(data).to be_a(SnapTrade::AllAccountPositionsResponse)
72
+ expect(data.results).to eq([])
73
+ expect(data.data_freshness.as_of).to eq(Time.utc(2026, 9, 8, 11, 2, 57))
74
+ end
75
+
76
+ it 'retains instruments when bond and other positions appear together' do
77
+ payload['results'][1]['instrument']['kind'] = 'other'
78
+
79
+ expect(data).to be_a(SnapTrade::AllAccountPositionsResponse)
80
+ expect(data.results.map(&:instrument)).to all(be_a(SnapTrade::OtherInstrument))
81
+ expect(data.results.map { |position| position.instrument.kind }).to eq(['bond', 'other'])
82
+ expect(data.results.map { |position| position.instrument.symbol }).to eq(['912797SA6', '91282CJT9'])
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,33 @@
1
+ {
2
+ "results": [
3
+ {
4
+ "instrument": {
5
+ "kind": "bond",
6
+ "id": "a7ade77d-74f4-4d8a-a1f8-1a582c2f4e3b",
7
+ "symbol": "912797SA6",
8
+ "raw_symbol": "912797SA6",
9
+ "description": "UNITED STATES TREAS BILLS ZERO CPN 0.00000% 10/01/2026",
10
+ "currency": "USD"
11
+ },
12
+ "units": "70",
13
+ "price": "99.768",
14
+ "cost_basis": "97.51",
15
+ "currency": "USD"
16
+ },
17
+ {
18
+ "instrument": {
19
+ "kind": "bond",
20
+ "id": "e538a57c-2bb8-40e2-812d-d07ee525b1cf",
21
+ "symbol": "91282CJT9",
22
+ "raw_symbol": "91282CJT9",
23
+ "description": "UNITED STATES TREAS SER AJ-2027 4.00000% 01/15/2027 NTS NOTE",
24
+ "currency": "USD"
25
+ },
26
+ "units": "70",
27
+ "price": "100.025",
28
+ "cost_basis": "100.25",
29
+ "currency": "USD"
30
+ }
31
+ ],
32
+ "data_freshness": { "as_of": "2026-09-08T11:02:57Z" }
33
+ }
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe SnapTrade::ApiClientCustom do
4
+ let(:configuration) do
5
+ SnapTrade::Configuration.new.tap { |config| config.consumer_key = 'TEST_KEY' }
6
+ end
7
+ let(:request) do
8
+ Faraday::Request.create(:post) do |req|
9
+ req.path = path
10
+ req.body = body
11
+ req.headers = {}
12
+ req.params = {
13
+ clientId: 'TEST_CLIENT',
14
+ userId: 'TEST_USER',
15
+ userSecret: 'TEST_SECRET'
16
+ }
17
+ end
18
+ end
19
+
20
+ before do
21
+ allow(Time).to receive(:now).and_return(Time.at(1_700_000_000))
22
+ end
23
+
24
+ context 'without a request body' do
25
+ let(:path) { '/accounts/TEST_ACCOUNT/positions/all' }
26
+ let(:body) { nil }
27
+
28
+ it 'preserves the existing signature bytes' do
29
+ described_class.request_hook(request, configuration)
30
+
31
+ expect(request.params[:timestamp]).to eq(1_700_000_000)
32
+ expect(request.headers[:Signature]).to eq('R7iYdxifiq/4joFEkOkaQj9QiW8LsgxmSDXco44gqtk=')
33
+ end
34
+ end
35
+
36
+ context 'with unsorted JSON body keys' do
37
+ let(:path) { '/orders' }
38
+ let(:body) { '{"z":2,"a":1}' }
39
+
40
+ it 'preserves body key sorting and the existing signature bytes' do
41
+ described_class.request_hook(request, configuration)
42
+
43
+ expect(request.headers[:Signature]).to eq('Zs3cXbvLmIEVPi69lHV6rah6wZ1phfk9cK6kbTYnSf4=')
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snaptrade
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.14
4
+ version: 3.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - SnapTrade
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-09-03 00:00:00.000000000 Z
11
+ date: 2026-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -78,7 +78,6 @@ extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
80
  - Gemfile
81
- - Gemfile.lock
82
81
  - README.md
83
82
  - Rakefile
84
83
  - header.png
@@ -582,6 +581,9 @@ files:
582
581
  - spec/models/us_exchange_spec.rb
583
582
  - spec/models/user_i_dand_secret_spec.rb
584
583
  - spec/models/validated_trade_body_spec.rb
584
+ - spec/regression/all_account_positions_spec.rb
585
+ - spec/regression/fixtures/all_account_positions.json
586
+ - spec/regression/request_signing_spec.rb
585
587
  - spec/spec_helper.rb
586
588
  homepage: https://snaptrade.com/
587
589
  licenses:
@@ -609,252 +611,255 @@ signing_key:
609
611
  specification_version: 4
610
612
  summary: SnapTrade Ruby Gem
611
613
  test_files:
612
- - spec/api/api_status_api_spec.rb
613
- - spec/api/reference_data_api_spec.rb
614
614
  - spec/api/connections_api_spec.rb
615
615
  - spec/api/authentication_api_spec.rb
616
+ - spec/api/experimental_endpoints_api_spec.rb
617
+ - spec/api/api_status_api_spec.rb
616
618
  - spec/api/trading_api_spec.rb
617
619
  - spec/api/account_information_api_spec.rb
618
- - spec/api/experimental_endpoints_api_spec.rb
620
+ - spec/api/reference_data_api_spec.rb
619
621
  - spec/api_client_spec.rb
620
622
  - spec/configuration_spec.rb
621
623
  - spec/getting_started_spec.rb
624
+ - spec/models/validated_trade_body_spec.rb
625
+ - spec/models/future_instrument_spec.rb
626
+ - spec/models/crypto_trading_instrument_spec.rb
627
+ - spec/models/snaptrade_spec.rb
628
+ - spec/models/manual_trade_impact_spec.rb
629
+ - spec/models/currency_spec.rb
630
+ - spec/models/account_sync_status_spec.rb
631
+ - spec/models/deposit_account_kind_spec.rb
632
+ - spec/models/option_chain_inner_spec.rb
633
+ - spec/models/model402_brokerage_auth_disabled_response_spec.rb
634
+ - spec/models/manual_trade_symbol_spec.rb
635
+ - spec/models/account_holdings_account_spec.rb
636
+ - spec/models/future_instrument_kind_spec.rb
637
+ - spec/models/model500_unexpected_exception_response_spec.rb
638
+ - spec/models/brokerage_authorization_type_read_only_spec.rb
639
+ - spec/models/manual_trade_replace_form_spec.rb
640
+ - spec/models/monthly_dividends_spec.rb
622
641
  - spec/models/underlying_symbol_spec.rb
623
- - spec/models/child_brokerage_order_ids_spec.rb
624
- - spec/models/brokerage_authorization_transactions_sync_confirmation_spec.rb
625
- - spec/models/cancel_order_response_spec.rb
626
- - spec/models/account_universal_activity_option_symbol_spec.rb
642
+ - spec/models/account_status_spec.rb
643
+ - spec/models/encrypted_response_encrypted_message_data_spec.rb
644
+ - spec/models/us_exchange_spec.rb
645
+ - spec/models/performance_custom_spec.rb
646
+ - spec/models/manual_trade_balance_spec.rb
647
+ - spec/models/account_order_record_status_spec.rb
648
+ - spec/models/line_of_credit_account_spec.rb
649
+ - spec/models/take_profit_spec.rb
650
+ - spec/models/option_chain_inner_chain_per_root_inner_spec.rb
651
+ - spec/models/type_spec.rb
652
+ - spec/models/account_spec.rb
653
+ - spec/models/delete_user_response_spec.rb
654
+ - spec/models/symbol_spec.rb
627
655
  - spec/models/option_strategy_spec.rb
628
- - spec/models/authentication_login_snap_trade_user200_response_spec.rb
629
- - spec/models/model425_failed_request_response_spec.rb
656
+ - spec/models/manual_trade_form_complex_type_spec.rb
657
+ - spec/models/session_event_type_spec.rb
658
+ - spec/models/mutual_fund_instrument_spec.rb
659
+ - spec/models/strategy_order_record_status_spec.rb
660
+ - spec/models/cancel_order_response_spec.rb
661
+ - spec/models/trade_detection_cancel_subscription_response_spec.rb
662
+ - spec/models/exchange_rate_pairs_spec.rb
663
+ - spec/models/dividend_at_date_spec.rb
664
+ - spec/models/adr_instrument_spec.rb
665
+ - spec/models/trading_session_spec.rb
666
+ - spec/models/rate_of_return_object_spec.rb
667
+ - spec/models/model402_brokerage_auth_already_disabled_exception_spec.rb
668
+ - spec/models/past_value_spec.rb
630
669
  - spec/models/recent_orders_response_spec.rb
631
- - spec/models/brokerage_authorization_type_read_only_type_spec.rb
632
- - spec/models/trading_instrument_type_spec.rb
670
+ - spec/models/brokerage_authorization_data_freshness_mode_spec.rb
671
+ - spec/models/all_account_positions_response_spec.rb
672
+ - spec/models/connection_portal_version_spec.rb
673
+ - spec/models/instrument_spec.rb
674
+ - spec/models/exchange_spec.rb
675
+ - spec/models/universal_symbol_spec.rb
676
+ - spec/models/brokerage_authorization_disabled_confirmation_spec.rb
677
+ - spec/models/mleg_instrument_type_spec.rb
678
+ - spec/models/account_order_record_quote_universal_symbol_spec.rb
679
+ - spec/models/options_symbol_spec.rb
680
+ - spec/models/adr_instrument_kind_spec.rb
681
+ - spec/models/mleg_order_type_strict_spec.rb
633
682
  - spec/models/options_position_spec.rb
634
- - spec/models/underlying_option_instrument_spec.rb
635
- - spec/models/symbol_query_spec.rb
636
- - spec/models/dividend_at_date_spec.rb
637
- - spec/models/account_simple_spec.rb
638
- - spec/models/account_balance_spec.rb
683
+ - spec/models/session_event_spec.rb
684
+ - spec/models/authentication_login_snap_trade_user200_response_spec.rb
685
+ - spec/models/brokerage_instruments_response_spec.rb
686
+ - spec/models/paginated_universal_activity_spec.rb
687
+ - spec/models/price_effect_spec.rb
688
+ - spec/models/stock_instrument_figi_instrument_spec.rb
689
+ - spec/models/model425_failed_request_response_spec.rb
690
+ - spec/models/simple_order_form_type_spec.rb
691
+ - spec/models/option_instrument_kind_spec.rb
692
+ - spec/models/cryptocurrency_pair_quote_spec.rb
693
+ - spec/models/order_type_strict_spec.rb
694
+ - spec/models/deposit_account_sync_status_spec.rb
695
+ - spec/models/brokerage_spec.rb
696
+ - spec/models/universal_activity_spec.rb
697
+ - spec/models/kind_spec.rb
698
+ - spec/models/model429_too_many_requests_response_spec.rb
699
+ - spec/models/complex_order_response_type_spec.rb
700
+ - spec/models/model501_not_implemented_response_spec.rb
639
701
  - spec/models/manual_trade_place_time_in_force_strict_spec.rb
640
- - spec/models/strategy_quotes_greek_spec.rb
641
- - spec/models/option_quote_spec.rb
642
702
  - spec/models/account_universal_activity_symbol_spec.rb
643
703
  - spec/models/deposit_account_net_value_spec.rb
644
- - spec/models/transactions_status_spec.rb
645
- - spec/models/order_updated_response_spec.rb
646
- - spec/models/crypto_order_form_time_in_force_spec.rb
647
- - spec/models/cryptocurrency_pair_spec.rb
704
+ - spec/models/account_simple_spec.rb
648
705
  - spec/models/position_currency_spec.rb
649
- - spec/models/order_type_strict_spec.rb
650
- - spec/models/account_orders_v2_response_spec.rb
651
- - spec/models/line_of_credit_account_sync_status_spec.rb
652
- - spec/models/action_strict_with_options_spec.rb
653
- - spec/models/cef_instrument_spec.rb
654
- - spec/models/brokerage_authorization_refresh_confirmation_spec.rb
655
- - spec/models/symbols_quotes_inner_spec.rb
656
- - spec/models/manual_trade_symbol_spec.rb
657
- - spec/models/trading_session_spec.rb
658
- - spec/models/account_order_record_option_symbol_spec.rb
659
- - spec/models/crypto_order_preview_estimated_fee_spec.rb
660
- - spec/models/complex_order_leg_spec.rb
661
- - spec/models/net_dividend_spec.rb
662
- - spec/models/performance_custom_spec.rb
663
- - spec/models/model501_not_implemented_response_spec.rb
664
- - spec/models/universal_symbol_spec.rb
665
- - spec/models/timeframe_spec.rb
666
- - spec/models/mleg_order_response_spec.rb
667
- - spec/models/model429_too_many_requests_response_spec.rb
668
- - spec/models/deposit_account_sync_status_spec.rb
669
- - spec/models/partner_data_spec.rb
670
- - spec/models/option_brokerage_symbol_spec.rb
671
- - spec/models/strategy_quotes_spec.rb
672
- - spec/models/deposit_account_kind_spec.rb
673
- - spec/models/adr_instrument_spec.rb
674
- - spec/models/snap_trade_login_user_request_body_spec.rb
675
- - spec/models/security_type_spec.rb
676
- - spec/models/take_profit_spec.rb
677
- - spec/models/brokerage_spec.rb
678
- - spec/models/snap_trade_register_user_request_body_spec.rb
679
- - spec/models/account_value_history_item_spec.rb
680
- - spec/models/account_balance_total_spec.rb
681
- - spec/models/rate_of_return_object_spec.rb
682
- - spec/models/snap_trade_holdings_account_spec.rb
683
- - spec/models/crypto_order_form_spec.rb
684
- - spec/models/user_i_dand_secret_spec.rb
685
- - spec/models/mutual_fund_instrument_spec.rb
686
- - spec/models/line_of_credit_account_minimum_payment_amount_spec.rb
687
- - spec/models/delete_connection_confirmation_spec.rb
688
- - spec/models/trade_detection_cancel_subscription_response_spec.rb
689
- - spec/models/strategy_order_record_spec.rb
690
- - spec/models/option_leg_action_spec.rb
691
- - spec/models/institution_spec.rb
692
- - spec/models/balance_currency_spec.rb
693
- - spec/models/snaptrade_spec.rb
694
- - spec/models/manual_trade_balance_spec.rb
706
+ - spec/models/line_of_credit_account_kind_spec.rb
707
+ - spec/models/account_order_record_universal_symbol_spec.rb
708
+ - spec/models/account_order_record_trailing_stop_spec.rb
695
709
  - spec/models/cef_instrument_kind_spec.rb
696
- - spec/models/sub_period_return_rate_spec.rb
710
+ - spec/models/symbol_exchange_spec.rb
711
+ - spec/models/cfd_instrument_spec.rb
712
+ - spec/models/manual_trade_form_with_options_spec.rb
713
+ - spec/models/mleg_trade_form_spec.rb
714
+ - spec/models/position_spec.rb
715
+ - spec/models/net_contributions_spec.rb
697
716
  - spec/models/account_order_record_leg_instrument_spec.rb
698
- - spec/models/complex_order_response_type_spec.rb
699
- - spec/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner_spec.rb
700
- - spec/models/account_order_record_leg_spec.rb
701
- - spec/models/connection_portal_version_spec.rb
702
- - spec/models/option_chain_inner_chain_per_root_inner_spec.rb
703
717
  - spec/models/trading_instrument_spec.rb
704
- - spec/models/figi_instrument_spec.rb
705
- - spec/models/options_position_currency_spec.rb
706
- - spec/models/exchange_rate_pairs_spec.rb
707
- - spec/models/balance_spec.rb
708
- - spec/models/option_strategy_legs_inner_spec.rb
709
- - spec/models/investment_account_spec.rb
710
- - spec/models/manual_trade_form_spec.rb
718
+ - spec/models/deposit_account_spec.rb
719
+ - spec/models/snap_trade_register_user_request_body_spec.rb
720
+ - spec/models/action_strict_spec.rb
721
+ - spec/models/account_universal_activity_currency_spec.rb
722
+ - spec/models/account_holdings_spec.rb
723
+ - spec/models/cryptocurrency_pair_spec.rb
724
+ - spec/models/brokerage_authorization_type_read_only_brokerage_spec.rb
725
+ - spec/models/complex_order_leg_spec.rb
726
+ - spec/models/brokerage_instrument_spec.rb
727
+ - spec/models/account_order_record_status_v2_spec.rb
728
+ - spec/models/crypto_order_form_time_in_force_spec.rb
711
729
  - spec/models/etf_instrument_kind_spec.rb
712
- - spec/models/price_effect_spec.rb
713
- - spec/models/trading_search_cryptocurrency_pair_instruments200_response_spec.rb
714
- - spec/models/option_quote_greeks_spec.rb
715
- - spec/models/order_updated_response_order_spec.rb
730
+ - spec/models/symbol_query_spec.rb
731
+ - spec/models/option_instrument_spec.rb
716
732
  - spec/models/status_spec.rb
717
- - spec/models/model404_failed_request_response_spec.rb
718
- - spec/models/adr_instrument_kind_spec.rb
719
- - spec/models/stock_instrument_figi_instrument_spec.rb
720
- - spec/models/option_instrument_kind_spec.rb
721
- - spec/models/universal_activity_spec.rb
722
- - spec/models/account_order_record_quote_universal_symbol_spec.rb
723
- - spec/models/connection_account_spec.rb
733
+ - spec/models/connection_account_sync_status_spec.rb
734
+ - spec/models/crypto_instrument_spec.rb
735
+ - spec/models/strategy_quotes_spec.rb
736
+ - spec/models/o_auth_webhook_base_spec.rb
737
+ - spec/models/option_leg_action_spec.rb
738
+ - spec/models/line_of_credit_account_minimum_payment_amount_spec.rb
739
+ - spec/models/schema_version_spec.rb
740
+ - spec/models/option_impact_spec.rb
741
+ - spec/models/crypto_instrument_kind_spec.rb
742
+ - spec/models/etf_instrument_spec.rb
743
+ - spec/models/simple_order_form_spec.rb
744
+ - spec/models/tax_lot_spec.rb
745
+ - spec/models/brokerage_type_spec.rb
746
+ - spec/models/crypto_order_preview_estimated_fee_spec.rb
747
+ - spec/models/trade_detection_add_subscription_request_spec.rb
748
+ - spec/models/timeframe_spec.rb
724
749
  - spec/models/stock_instrument_spec.rb
725
- - spec/models/all_account_positions_response_spec.rb
726
- - spec/models/rate_of_return_response_spec.rb
727
- - spec/models/other_instrument_spec.rb
728
- - spec/models/auth_type_spec.rb
729
- - spec/models/past_value_spec.rb
730
- - spec/models/manual_trade_form_complex_spec.rb
731
- - spec/models/account_holdings_spec.rb
732
- - spec/models/options_symbol_spec.rb
733
- - spec/models/mleg_action_strict_spec.rb
734
- - spec/models/mleg_order_type_strict_spec.rb
735
- - spec/models/model402_brokerage_auth_already_disabled_exception_spec.rb
736
- - spec/models/exchange_spec.rb
737
- - spec/models/investment_account_net_value_spec.rb
738
- - spec/models/account_order_record_status_spec.rb
739
- - spec/models/option_instrument_spec.rb
740
750
  - spec/models/strategy_type_spec.rb
741
- - spec/models/underlying_symbol_exchange_spec.rb
742
- - spec/models/account_position_spec.rb
743
- - spec/models/mleg_trading_instrument_spec.rb
744
- - spec/models/option_leg_spec.rb
745
- - spec/models/connection_type_spec.rb
746
- - spec/models/mleg_leg_spec.rb
751
+ - spec/models/manual_trade_form_complex_spec.rb
752
+ - spec/models/institution_spec.rb
747
753
  - spec/models/crypto_order_preview_spec.rb
748
- - spec/models/action_strict_spec.rb
749
- - spec/models/future_instrument_spec.rb
750
- - spec/models/manual_trade_spec.rb
751
- - spec/models/underlying_cfd_instrument_spec.rb
752
- - spec/models/delete_user_response_spec.rb
753
- - spec/models/account_status_spec.rb
754
- - spec/models/connection_account_sync_status_spec.rb
755
- - spec/models/us_exchange_spec.rb
756
- - spec/models/mleg_trade_form_spec.rb
757
- - spec/models/account_sync_status_spec.rb
754
+ - spec/models/account_order_record_child_brokerage_order_ids_spec.rb
755
+ - spec/models/strategy_order_record_spec.rb
756
+ - spec/models/model403_failed_request_response_spec.rb
757
+ - spec/models/balance_spec.rb
758
+ - spec/models/options_position_currency_spec.rb
759
+ - spec/models/cef_instrument_spec.rb
760
+ - spec/models/symbol_currency_spec.rb
761
+ - spec/models/all_account_positions_response_data_freshness_spec.rb
762
+ - spec/models/trading_search_cryptocurrency_pair_instruments200_response_spec.rb
763
+ - spec/models/trade_detection_cancel_subscription_request_spec.rb
764
+ - spec/models/holdings_status_spec.rb
758
765
  - spec/models/account_value_history_response_spec.rb
759
- - spec/models/option_impact_spec.rb
760
- - spec/models/cryptocurrency_pair_quote_spec.rb
766
+ - spec/models/rate_of_return_response_spec.rb
767
+ - spec/models/mleg_trading_instrument_spec.rb
768
+ - spec/models/order_updated_response_order_spec.rb
769
+ - spec/models/account_order_record_quote_currency_spec.rb
770
+ - spec/models/complex_order_response_spec.rb
771
+ - spec/models/account_value_history_item_spec.rb
772
+ - spec/models/brokerage_authorization_refresh_confirmation_spec.rb
773
+ - spec/models/partner_data_spec.rb
774
+ - spec/models/model401_failed_request_response_spec.rb
775
+ - spec/models/account_order_record_leg_spec.rb
776
+ - spec/models/underlying_symbol_exchange_spec.rb
777
+ - spec/models/underlying_option_instrument_spec.rb
778
+ - spec/models/snap_trade_holdings_account_spec.rb
779
+ - spec/models/underlying_symbol_type_spec.rb
780
+ - spec/models/manual_trade_spec.rb
781
+ - spec/models/option_strategy_legs_inner_spec.rb
761
782
  - spec/models/brokerage_authorization_spec.rb
762
- - spec/models/cfd_instrument_kind_spec.rb
763
- - spec/models/manual_trade_form_bracket_spec.rb
764
- - spec/models/account_spec.rb
765
- - spec/models/pagination_details_spec.rb
766
- - spec/models/login_redirect_uri_spec.rb
767
- - spec/models/account_order_record_trailing_stop_spec.rb
768
- - spec/models/crypto_instrument_spec.rb
769
- - spec/models/brokerage_authorization_data_freshness_mode_spec.rb
770
- - spec/models/kind_spec.rb
771
- - spec/models/crypto_instrument_kind_spec.rb
772
- - spec/models/model402_brokerage_auth_disabled_response_spec.rb
773
- - spec/models/currency_spec.rb
774
- - spec/models/all_account_positions_response_data_freshness_spec.rb
775
- - spec/models/symbol_currency_spec.rb
776
- - spec/models/account_order_record_v2_order_role_spec.rb
777
- - spec/models/session_event_spec.rb
778
- - spec/models/crypto_trading_instrument_spec.rb
779
- - spec/models/symbol_exchange_spec.rb
783
+ - spec/models/mleg_action_strict_spec.rb
784
+ - spec/models/simple_order_form_time_in_force_spec.rb
785
+ - spec/models/manual_trade_form_spec.rb
786
+ - spec/models/account_universal_activity_currency_universal_symbol_spec.rb
787
+ - spec/models/crypto_trading_instrument_type_spec.rb
788
+ - spec/models/account_order_record_spec.rb
789
+ - spec/models/auth_type_spec.rb
780
790
  - spec/models/notional_value_spec.rb
781
- - spec/models/model401_failed_request_response_spec.rb
782
- - spec/models/brokerage_instruments_response_spec.rb
783
- - spec/models/type_spec.rb
784
- - spec/models/crypto_order_form_type_spec.rb
785
- - spec/models/option_type_spec.rb
786
- - spec/models/account_information_get_user_account_order_detail_request_spec.rb
787
- - spec/models/other_instrument_kind_spec.rb
788
- - spec/models/account_order_record_child_brokerage_order_ids_spec.rb
789
- - spec/models/model403_feature_not_enabled_response_spec.rb
790
- - spec/models/deposit_account_spec.rb
791
+ - spec/models/child_brokerage_order_ids_spec.rb
792
+ - spec/models/account_order_record_v2_order_role_spec.rb
793
+ - spec/models/mleg_leg_spec.rb
791
794
  - spec/models/line_of_credit_account_net_value_spec.rb
792
- - spec/models/manual_trade_form_with_options_spec.rb
793
- - spec/models/account_universal_activity_spec.rb
794
- - spec/models/model400_failed_request_response_spec.rb
795
- - spec/models/brokerage_type_spec.rb
796
- - spec/models/encrypted_response_encrypted_message_data_spec.rb
797
- - spec/models/simple_order_form_spec.rb
798
- - spec/models/cash_change_direction_spec.rb
799
- - spec/models/stock_instrument_kind_spec.rb
800
- - spec/models/line_of_credit_account_kind_spec.rb
801
- - spec/models/line_of_credit_account_spec.rb
802
- - spec/models/complex_order_response_spec.rb
803
- - spec/models/mleg_instrument_type_spec.rb
804
- - spec/models/etf_instrument_spec.rb
805
- - spec/models/crypto_trading_instrument_type_spec.rb
795
+ - spec/models/line_of_credit_account_sync_status_spec.rb
796
+ - spec/models/crypto_order_form_type_spec.rb
806
797
  - spec/models/mutual_fund_instrument_kind_spec.rb
807
- - spec/models/encrypted_response_spec.rb
808
- - spec/models/holdings_status_spec.rb
809
- - spec/models/trade_detection_cancel_subscription_request_spec.rb
810
- - spec/models/trade_detection_subscription_spec.rb
811
- - spec/models/trade_detection_add_subscription_request_spec.rb
812
- - spec/models/simple_order_form_type_spec.rb
813
- - spec/models/strategy_order_record_status_spec.rb
814
- - spec/models/model403_failed_request_response_spec.rb
815
- - spec/models/o_auth_webhook_base_spec.rb
816
- - spec/models/brokerage_authorization_disabled_confirmation_spec.rb
817
- - spec/models/account_order_record_spec.rb
818
- - spec/models/underlying_symbol_type_spec.rb
819
- - spec/models/manual_trade_impact_spec.rb
820
- - spec/models/options_symbol_option_type_spec.rb
798
+ - spec/models/strategy_quotes_greek_spec.rb
799
+ - spec/models/sub_period_return_rate_spec.rb
800
+ - spec/models/account_balance_total_spec.rb
801
+ - spec/models/cfd_instrument_kind_spec.rb
802
+ - spec/models/crypto_order_form_spec.rb
821
803
  - spec/models/time_in_force_strict_spec.rb
822
- - spec/models/position_symbol_spec.rb
823
- - spec/models/instrument_spec.rb
824
- - spec/models/order_role_spec.rb
825
- - spec/models/session_event_type_spec.rb
826
- - spec/models/monthly_dividends_spec.rb
827
- - spec/models/brokerage_authorization_type_read_only_brokerage_spec.rb
828
- - spec/models/paginated_universal_activity_spec.rb
829
- - spec/models/account_order_record_v2_spec.rb
830
- - spec/models/account_holdings_account_spec.rb
831
- - spec/models/model500_unexpected_exception_response_spec.rb
832
- - spec/models/option_chain_inner_spec.rb
804
+ - spec/models/security_type_spec.rb
833
805
  - spec/models/manual_trade_and_impact_spec.rb
834
- - spec/models/manual_trade_replace_form_spec.rb
835
- - spec/models/account_universal_activity_currency_spec.rb
836
- - spec/models/brokerage_authorization_type_read_only_spec.rb
837
- - spec/models/brokerage_instrument_spec.rb
838
- - spec/models/symbol_spec.rb
839
- - spec/models/validated_trade_body_spec.rb
840
- - spec/models/account_order_record_universal_symbol_spec.rb
806
+ - spec/models/brokerage_authorization_transactions_sync_confirmation_spec.rb
841
807
  - spec/models/manual_trade_form_notional_value_spec.rb
842
- - spec/models/simple_order_form_time_in_force_spec.rb
843
- - spec/models/future_instrument_kind_spec.rb
808
+ - spec/models/net_dividend_spec.rb
809
+ - spec/models/account_information_get_user_account_order_detail_request_spec.rb
810
+ - spec/models/account_position_spec.rb
811
+ - spec/models/balance_currency_spec.rb
812
+ - spec/models/brokerage_authorization_type_read_only_type_spec.rb
813
+ - spec/models/figi_instrument_spec.rb
814
+ - spec/models/account_category_spec.rb
815
+ - spec/models/account_universal_activity_option_symbol_spec.rb
844
816
  - spec/models/mleg_price_effect_strict_spec.rb
845
- - spec/models/manual_trade_form_complex_type_spec.rb
817
+ - spec/models/manual_trade_form_bracket_spec.rb
818
+ - spec/models/position_symbol_spec.rb
819
+ - spec/models/investment_account_net_value_spec.rb
820
+ - spec/models/symbols_quotes_inner_spec.rb
821
+ - spec/models/option_type_spec.rb
822
+ - spec/models/stock_instrument_kind_spec.rb
823
+ - spec/models/investment_account_spec.rb
824
+ - spec/models/account_order_record_option_symbol_spec.rb
825
+ - spec/models/connection_account_spec.rb
826
+ - spec/models/underlying_cfd_instrument_spec.rb
827
+ - spec/models/delete_connection_confirmation_spec.rb
828
+ - spec/models/action_strict_with_options_spec.rb
829
+ - spec/models/model503_brokerage_request_response_spec.rb
830
+ - spec/models/account_order_record_v2_spec.rb
831
+ - spec/models/order_updated_response_spec.rb
846
832
  - spec/models/trailing_stop_spec.rb
847
- - spec/models/account_order_record_quote_currency_spec.rb
833
+ - spec/models/model400_failed_request_response_spec.rb
834
+ - spec/models/account_balance_spec.rb
835
+ - spec/models/trade_detection_subscription_spec.rb
836
+ - spec/models/order_role_spec.rb
837
+ - spec/models/transactions_status_spec.rb
838
+ - spec/models/encrypted_response_spec.rb
839
+ - spec/models/option_quote_greeks_spec.rb
840
+ - spec/models/pagination_details_spec.rb
841
+ - spec/models/complex_order_leg_order_role_spec.rb
842
+ - spec/models/options_symbol_option_type_spec.rb
843
+ - spec/models/option_quote_spec.rb
844
+ - spec/models/other_instrument_spec.rb
845
+ - spec/models/option_leg_spec.rb
846
+ - spec/models/other_instrument_kind_spec.rb
847
+ - spec/models/cash_change_direction_spec.rb
848
+ - spec/models/model403_feature_not_enabled_response_spec.rb
849
+ - spec/models/login_redirect_uri_spec.rb
850
+ - spec/models/snap_trade_login_user_request_body_spec.rb
851
+ - spec/models/option_brokerage_symbol_spec.rb
852
+ - spec/models/trading_instrument_type_spec.rb
853
+ - spec/models/account_universal_activity_spec.rb
854
+ - spec/models/option_chain_inner_chain_per_root_inner_chain_per_strike_price_inner_spec.rb
855
+ - spec/models/connection_type_spec.rb
856
+ - spec/models/account_orders_v2_response_spec.rb
857
+ - spec/models/model404_failed_request_response_spec.rb
848
858
  - spec/models/stop_loss_spec.rb
849
859
  - spec/models/snap_trade_holdings_total_value_spec.rb
850
- - spec/models/complex_order_leg_order_role_spec.rb
851
- - spec/models/cfd_instrument_spec.rb
852
- - spec/models/model503_brokerage_request_response_spec.rb
853
- - spec/models/net_contributions_spec.rb
854
- - spec/models/position_spec.rb
855
- - spec/models/schema_version_spec.rb
856
- - spec/models/account_order_record_status_v2_spec.rb
857
- - spec/models/account_universal_activity_currency_universal_symbol_spec.rb
858
- - spec/models/tax_lot_spec.rb
859
- - spec/models/account_category_spec.rb
860
+ - spec/models/user_i_dand_secret_spec.rb
861
+ - spec/models/mleg_order_response_spec.rb
862
+ - spec/regression/all_account_positions_spec.rb
863
+ - spec/regression/request_signing_spec.rb
864
+ - spec/regression/fixtures/all_account_positions.json
860
865
  - spec/spec_helper.rb
data/Gemfile.lock DELETED
@@ -1,91 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- snaptrade (3.0.14)
5
- faraday (>= 1.0.1, < 3.0)
6
- faraday-multipart (~> 1.0, >= 1.0.4)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- ast (2.4.3)
12
- base64 (0.3.0)
13
- byebug (11.1.3)
14
- coderay (1.1.3)
15
- debug (1.8.0)
16
- irb (>= 1.5.0)
17
- reline (>= 0.3.1)
18
- diff-lcs (1.6.2)
19
- faraday (2.8.1)
20
- base64
21
- faraday-net_http (>= 2.0, < 3.1)
22
- ruby2_keywords (>= 0.0.4)
23
- faraday-multipart (1.2.0)
24
- multipart-post (~> 2.0)
25
- faraday-net_http (3.0.2)
26
- io-console (0.9.2)
27
- irb (1.6.4)
28
- reline (>= 0.3.0)
29
- method_source (1.1.0)
30
- multipart-post (2.4.1)
31
- parallel (1.28.0)
32
- parser (3.3.12.0)
33
- ast (~> 2.4.1)
34
- racc
35
- prism (1.9.0)
36
- pry (0.14.2)
37
- coderay (~> 1.1)
38
- method_source (~> 1.0)
39
- pry-byebug (3.10.1)
40
- byebug (~> 11.0)
41
- pry (>= 0.13, < 0.15)
42
- racc (1.8.1)
43
- rainbow (3.1.1)
44
- rake (13.0.6)
45
- regexp_parser (2.12.0)
46
- reline (0.7.0)
47
- io-console (~> 0.5)
48
- rexml (3.4.4)
49
- rspec (3.13.2)
50
- rspec-core (~> 3.13.0)
51
- rspec-expectations (~> 3.13.0)
52
- rspec-mocks (~> 3.13.0)
53
- rspec-core (3.13.6)
54
- rspec-support (~> 3.13.0)
55
- rspec-expectations (3.13.5)
56
- diff-lcs (>= 1.2.0, < 2.0)
57
- rspec-support (~> 3.13.0)
58
- rspec-mocks (3.13.8)
59
- diff-lcs (>= 1.2.0, < 2.0)
60
- rspec-support (~> 3.13.0)
61
- rspec-support (3.13.7)
62
- rubocop (1.12.1)
63
- parallel (~> 1.10)
64
- parser (>= 3.0.0.0)
65
- rainbow (>= 2.2.2, < 4.0)
66
- regexp_parser (>= 1.8, < 3.0)
67
- rexml
68
- rubocop-ast (>= 1.2.0, < 2.0)
69
- ruby-progressbar (~> 1.7)
70
- unicode-display_width (>= 1.4.0, < 3.0)
71
- rubocop-ast (1.50.0)
72
- parser (>= 3.3.7.2)
73
- prism (~> 1.7)
74
- ruby-progressbar (1.13.0)
75
- ruby2_keywords (0.0.5)
76
- unicode-display_width (2.6.0)
77
-
78
- PLATFORMS
79
- x86_64-linux
80
-
81
- DEPENDENCIES
82
- debug (~> 1.8)
83
- irb (= 1.6.4)
84
- pry-byebug
85
- rake (~> 13.0.1)
86
- rspec (~> 3.6, >= 3.6.0)
87
- rubocop (~> 1.12.1)
88
- snaptrade!
89
-
90
- BUNDLED WITH
91
- 2.4.22