Skip to content

Commit

Permalink
Issue #719 - Bunch of renamings according to latest API specifications.
Browse files Browse the repository at this point in the history
  • Loading branch information
OlegRa committed Feb 25, 2024
1 parent bfc2c00 commit ea73dab
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 35 deletions.
12 changes: 7 additions & 5 deletions Alpaca.Markets.Tests/AlpacaTradingClientTest.Account.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ public async Task GetAccountAsyncWorks()

mock.AddGet("/v2/account", new JObject(
new JProperty("account_number", Guid.NewGuid().ToString("D")),
new JProperty("option_approved_level", OptionTradingLevel.Disabled),
new JProperty("option_trading_level", OptionTradingLevel.Disabled),
new JProperty("options_approved_level", OptionsTradingLevel.Disabled),
new JProperty("options_trading_level", OptionsTradingLevel.Disabled),
new JProperty("crypto_status", AccountStatus.Active),
new JProperty("non_maginable_buying_power", Price),
new JProperty("daytrading_buying_power", Price),
Expand All @@ -32,6 +32,7 @@ public async Task GetAccountAsyncWorks()
new JProperty("trade_suspended_by_user", true),
new JProperty("status", AccountStatus.Active),
new JProperty("created_at", DateTime.UtcNow),
new JProperty("options_buying_power", cash),
new JProperty("short_market_value", Price),
new JProperty("maintenance_margin", Price),
new JProperty("pattern_day_trader", false),
Expand Down Expand Up @@ -64,6 +65,7 @@ public async Task GetAccountAsyncWorks()
Assert.Equal(transfer, account.PendingTransferOut);
Assert.Equal(transfer, account.PendingTransferIn);
Assert.Equal(transfer, account.AccruedFees);
Assert.Equal(cash, account.OptionsBuyingPower);

Assert.True(account.LastMaintenanceMargin != 0M);
Assert.True(account.MaintenanceMargin != 0M);
Expand All @@ -76,8 +78,8 @@ public async Task GetAccountAsyncWorks()
Assert.NotNull(account.NonMarginableBuyingPower);
Assert.NotNull(account.DayTradingBuyingPower);
Assert.NotNull(account.RegulationBuyingPower);
Assert.NotNull(account.OptionApprovedLevel);
Assert.NotNull(account.OptionTradingLevel);
Assert.NotNull(account.OptionsApprovedLevel);
Assert.NotNull(account.OptionsTradingLevel);
Assert.NotNull(account.ShortMarketValue);
Assert.NotNull(account.LongMarketValue);
Assert.NotNull(account.InitialMargin);
Expand Down Expand Up @@ -226,7 +228,7 @@ public async Task PatchAccountConfigurationAsyncWorks()
private static JObject createConfiguration() =>
new(
// ReSharper disable once StringLiteralTypo
new JProperty("max_option_trading_level", OptionTradingLevel.LongCallPut),
new JProperty("max_option_trading_level", OptionsTradingLevel.LongCallPut),
new JProperty("dtbp_check", DayTradeMarginCallProtection.Both),
new JProperty("trade_confirm_email", TradeConfirmEmail.All),
new JProperty("ptp_no_exception_entry", false),
Expand Down
39 changes: 30 additions & 9 deletions Alpaca.Markets/CompatibilitySuppressions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,63 +3,84 @@
<Suppressions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionApprovedLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsApprovedLevel</Target>
<Left>lib/net6.0/Alpaca.Markets.dll</Left>
<Right>lib/net6.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsBuyingPower</Target>
<Left>lib/net6.0/Alpaca.Markets.dll</Left>
<Right>lib/net6.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsTradingLevel</Target>
<Left>lib/net6.0/Alpaca.Markets.dll</Left>
<Right>lib/net6.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionApprovedLevel</Target>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionsTradingLevel</Target>
<Left>lib/net6.0/Alpaca.Markets.dll</Left>
<Right>lib/net6.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionsApprovedLevel</Target>
<Left>lib/netstandard2.0/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionsBuyingPower</Target>
<Left>lib/netstandard2.0/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsTradingLevel</Target>
<Left>lib/netstandard2.0/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionsTradingLevel</Target>
<Left>lib/netstandard2.0/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.0/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionApprovedLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsApprovedLevel</Target>
<Left>lib/netstandard2.1/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.1/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionsBuyingPower</Target>
<Left>lib/netstandard2.1/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.1/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccount.OptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccount.OptionsTradingLevel</Target>
<Left>lib/netstandard2.1/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.1/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<Suppression>
<DiagnosticId>CP0006</DiagnosticId>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionTradingLevel</Target>
<Target>P:Alpaca.Markets.IAccountConfiguration.MaxOptionsTradingLevel</Target>
<Left>lib/netstandard2.1/Alpaca.Markets.dll</Left>
<Right>lib/netstandard2.1/Alpaca.Markets.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
/// <summary>
/// Options trading level for Alpaca REST API.
/// </summary>
public enum OptionTradingLevel
public enum OptionsTradingLevel
{
/// <summary>
/// US options trading completely disabled.
Expand Down
16 changes: 11 additions & 5 deletions Alpaca.Markets/Interfaces/IAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,15 +187,21 @@ public interface IAccount
Decimal? PendingTransferOut { get; }

/// <summary>
/// Gets the effective option trading level of the account. This is the minimum between the
/// <see cref="OptionApprovedLevel"/> and the <see cref="IAccountConfiguration.MaxOptionTradingLevel"/>.
/// Gets the effective options trading level of the account. This is the minimum between the
/// <see cref="OptionsApprovedLevel"/> and the <see cref="IAccountConfiguration.MaxOptionsTradingLevel"/>.
/// </summary>
[UsedImplicitly]
OptionTradingLevel? OptionTradingLevel { get; }
OptionsTradingLevel? OptionsTradingLevel { get; }

/// <summary>
/// Gets the option trading level that was approved for this account.
/// Gets the options trading level that was approved for this account.
/// </summary>
[UsedImplicitly]
OptionTradingLevel? OptionApprovedLevel { get; }
OptionsTradingLevel? OptionsApprovedLevel { get; }

/// <summary>
/// Gets the option buying power that was approved for this account.
/// </summary>
[UsedImplicitly]
Decimal? OptionsBuyingPower { get; }
}
4 changes: 2 additions & 2 deletions Alpaca.Markets/Interfaces/IAccountConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ public interface IAccountConfiguration
public Boolean IsPtpNoExceptionEntry { get; set; }

/// <summary>
/// Gets the desired maximum option trading level.
/// Gets the desired maximum options trading level.
/// </summary>
[UsedImplicitly]
OptionTradingLevel? MaxOptionTradingLevel { get; }
OptionsTradingLevel? MaxOptionsTradingLevel { get; }
}
11 changes: 7 additions & 4 deletions Alpaca.Markets/Messages/JsonAccount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,14 @@ internal sealed class JsonAccount : IAccount
[JsonProperty(PropertyName = "pending_transfer_out", Required = Required.Default)]
public Decimal? PendingTransferOut { get; set; }

[JsonProperty(PropertyName = "option_trading_level", Required = Required.Default)]
public OptionTradingLevel? OptionTradingLevel { get; set; }
[JsonProperty(PropertyName = "options_trading_level", Required = Required.Default)]
public OptionsTradingLevel? OptionsTradingLevel { get; set; }

[JsonProperty(PropertyName = "option_approved_level", Required = Required.Default)]
public OptionTradingLevel? OptionApprovedLevel { get; set; }
[JsonProperty(PropertyName = "options_approved_level", Required = Required.Default)]
public OptionsTradingLevel? OptionsApprovedLevel { get; set; }

[JsonProperty(PropertyName = "options_buying_power", Required = Required.Default)]
public Decimal? OptionsBuyingPower { get; set; }

[OnDeserialized]
[UsedImplicitly]
Expand Down
4 changes: 2 additions & 2 deletions Alpaca.Markets/Messages/JsonAccountConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ internal sealed class JsonAccountConfiguration : IAccountConfiguration
[JsonProperty(PropertyName = "ptp_no_exception_entry", Required = Required.Default)]
public Boolean IsPtpNoExceptionEntry { get; set; }

[JsonProperty(PropertyName = "max_option_trading_level", Required = Required.Default)]
public OptionTradingLevel? MaxOptionTradingLevel { get; set; }
[JsonProperty(PropertyName = "max_options_trading_level", Required = Required.Default)]
public OptionsTradingLevel? MaxOptionsTradingLevel { get; set; }

[ExcludeFromCodeCoverage]
public override String ToString() =>
Expand Down
15 changes: 8 additions & 7 deletions Alpaca.Markets/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#nullable enable
Alpaca.Markets.AssetClass.UsOption = 2 -> Alpaca.Markets.AssetClass
Alpaca.Markets.IAccount.OptionApprovedLevel.get -> Alpaca.Markets.OptionTradingLevel?
Alpaca.Markets.IAccount.OptionTradingLevel.get -> Alpaca.Markets.OptionTradingLevel?
Alpaca.Markets.IAccountConfiguration.MaxOptionTradingLevel.get -> Alpaca.Markets.OptionTradingLevel?
Alpaca.Markets.OptionTradingLevel
Alpaca.Markets.OptionTradingLevel.CoveredCallCashSecuredPut = 1 -> Alpaca.Markets.OptionTradingLevel
Alpaca.Markets.OptionTradingLevel.Disabled = 0 -> Alpaca.Markets.OptionTradingLevel
Alpaca.Markets.OptionTradingLevel.LongCallPut = 2 -> Alpaca.Markets.OptionTradingLevel
Alpaca.Markets.IAccount.OptionsApprovedLevel.get -> Alpaca.Markets.OptionsTradingLevel?
Alpaca.Markets.IAccount.OptionsBuyingPower.get -> decimal?
Alpaca.Markets.IAccount.OptionsTradingLevel.get -> Alpaca.Markets.OptionsTradingLevel?
Alpaca.Markets.IAccountConfiguration.MaxOptionsTradingLevel.get -> Alpaca.Markets.OptionsTradingLevel?
Alpaca.Markets.OptionsTradingLevel
Alpaca.Markets.OptionsTradingLevel.CoveredCallCashSecuredPut = 1 -> Alpaca.Markets.OptionsTradingLevel
Alpaca.Markets.OptionsTradingLevel.Disabled = 0 -> Alpaca.Markets.OptionsTradingLevel
Alpaca.Markets.OptionsTradingLevel.LongCallPut = 2 -> Alpaca.Markets.OptionsTradingLevel

0 comments on commit ea73dab

Please sign in to comment.