From c1dde521afc7db13c82a720b7a61d9673c5ec2b0 Mon Sep 17 00:00:00 2001 From: Jkorf Date: Wed, 5 Mar 2025 16:12:18 +0100 Subject: [PATCH] Added OptionalExchangeParameters, UnsupportedOptionalParameters and Supported to shared EndpointOptions --- .../Options/Endpoints/EndpointOptions.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/EndpointOptions.cs b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/EndpointOptions.cs index bd28507..b4b7abf 100644 --- a/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/EndpointOptions.cs +++ b/CryptoExchange.Net/SharedApis/Models/Options/Endpoints/EndpointOptions.cs @@ -17,6 +17,10 @@ namespace CryptoExchange.Net.SharedApis /// public List RequiredExchangeParameters { get; set; } = new List(); /// + /// Optional exchange-specific parameters + /// + public List OptionalExchangeParameters { get; set; } = new List(); + /// /// Endpoint name /// public string EndpointName { get; set; } @@ -28,6 +32,10 @@ namespace CryptoExchange.Net.SharedApis /// Whether the call requires authentication /// public bool NeedsAuthentication { get; set; } + /// + /// Whether the call is supported by the exchange + /// + public bool Supported { get; set; } = true; /// /// ctor @@ -71,12 +79,16 @@ namespace CryptoExchange.Net.SharedApis /// public virtual string ToString(string exchange) { + if (!Supported) + return $"{exchange} {EndpointName} NOT SUPPORTED"; + var sb = new StringBuilder(); sb.AppendLine($"{exchange} {EndpointName}"); if (!string.IsNullOrEmpty(RequestNotes)) sb.AppendLine(RequestNotes); sb.AppendLine($"Needs authentication: {NeedsAuthentication}"); sb.AppendLine($"Required exchange specific parameters: {string.Join(", ", RequiredExchangeParameters.Select(x => x.ToString()))}"); + sb.AppendLine($"Optional exchange specific parameters: {string.Join(", ", OptionalExchangeParameters.Select(x => x.ToString()))}"); return sb.ToString(); } } @@ -91,6 +103,10 @@ namespace CryptoExchange.Net.SharedApis /// Required optional parameters in the request /// public List RequiredOptionalParameters { get; set; } = new List(); + /// + /// Unsupported optional parameters in the request + /// + public List UnsupportedOptionalParameters { get; set; } = new List(); /// /// ctor @@ -130,6 +146,9 @@ namespace CryptoExchange.Net.SharedApis /// public override string ToString(string exchange) { + if (!Supported) + return $"{exchange} {EndpointName} NOT SUPPORTED"; + var sb = new StringBuilder(); sb.AppendLine($"{exchange} {typeof(T).Name}"); sb.AppendLine($"Needs authentication: {NeedsAuthentication}"); @@ -137,8 +156,12 @@ namespace CryptoExchange.Net.SharedApis sb.AppendLine(RequestNotes); if (RequiredOptionalParameters.Any()) sb.AppendLine($"Required optional parameters: {string.Join(", ", RequiredOptionalParameters.Select(x => x.ToString()))}"); + if (UnsupportedOptionalParameters.Any()) + sb.AppendLine($"Unsupported optional specific parameters: {string.Join(", ", UnsupportedOptionalParameters.Select(x => x.ToString()))}"); if (RequiredExchangeParameters.Any()) sb.AppendLine($"Required exchange specific parameters: {string.Join(", ", RequiredExchangeParameters.Select(x => x.ToString()))}"); + if (OptionalExchangeParameters.Any()) + sb.AppendLine($"Optional exchange specific parameters: {string.Join(", ", RequiredExchangeParameters.Select(x => x.ToString()))}"); return sb.ToString(); } }