mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-11 01:35:22 +01:00
Refactoring conditional method, separating into two properties
This commit is contained in:
parent
039303bfaa
commit
d34ffc0d9a
5 changed files with 30 additions and 37 deletions
|
@ -436,40 +436,40 @@ namespace BTCPayServer.Tests
|
|||
|
||||
Assert.True(LightningConnectionString.TryParse(lndUri, out conn));
|
||||
Assert.Equal("http://lnd:lnd@127.0.0.1:53280/", conn.ToString());
|
||||
Assert.Equal("http://lnd:lnd@127.0.0.1:53280/", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("http://127.0.0.1:53280/", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("http://lnd:lnd@127.0.0.1:53280/", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("http://127.0.0.1:53280/", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.Lnd, conn.ConnectionType);
|
||||
Assert.Equal(macaroon, conn.Macaroon);
|
||||
Assert.Equal(tls, conn.Tls);
|
||||
|
||||
Assert.True(LightningConnectionString.TryParse("/test/a", out conn));
|
||||
Assert.Equal("unix://test/a", conn.ToString());
|
||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||
|
||||
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
||||
Assert.Equal("unix://test/a", conn.ToString());
|
||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||
|
||||
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
||||
Assert.Equal("unix://test/a", conn.ToString());
|
||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||
|
||||
Assert.True(LightningConnectionString.TryParse("tcp://test/a", out conn));
|
||||
Assert.Equal("tcp://test/a", conn.ToString());
|
||||
Assert.Equal("tcp://test/a", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("tcp://test/a", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("tcp://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("tcp://test/a", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||
|
||||
Assert.True(LightningConnectionString.TryParse("http://aaa:bbb@test/a", out conn));
|
||||
Assert.Equal("http://aaa:bbb@test/a", conn.ToString());
|
||||
Assert.Equal("http://aaa:bbb@test/a", conn.ToUri(true).AbsoluteUri);
|
||||
Assert.Equal("http://test/a", conn.ToUri(false).AbsoluteUri);
|
||||
Assert.Equal("http://aaa:bbb@test/a", conn.UriWithCreds.AbsoluteUri);
|
||||
Assert.Equal("http://test/a", conn.UriPlain.AbsoluteUri);
|
||||
Assert.Equal(LightningConnectionType.Charge, conn.ConnectionType);
|
||||
Assert.Equal("aaa", conn.Username);
|
||||
Assert.Equal("bbb", conn.Password);
|
||||
|
|
|
@ -26,16 +26,11 @@ namespace BTCPayServer.Controllers
|
|||
return NotFound();
|
||||
LightningNodeViewModel vm = new LightningNodeViewModel();
|
||||
vm.CryptoCode = cryptoCode;
|
||||
vm.InternalLightningNode = GetInternalLighningNode(cryptoCode)?.ToUri(true)?.AbsoluteUri;
|
||||
SetExistingValues(store, vm);
|
||||
vm.InternalLightningNode = GetInternalLighningNode(cryptoCode)?.UriWithCreds?.AbsoluteUri;
|
||||
vm.Url = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store)?.GetLightningUrl()?.UriWithCreds.AbsoluteUri;
|
||||
return View(vm);
|
||||
}
|
||||
|
||||
private void SetExistingValues(StoreData store, LightningNodeViewModel vm)
|
||||
{
|
||||
vm.Url = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store)?.GetLightningUrl()?.ToString();
|
||||
}
|
||||
|
||||
private LightningSupportedPaymentMethod GetExistingLightningSupportedPaymentMethod(string cryptoCode, StoreData store)
|
||||
{
|
||||
var id = new PaymentMethodId(cryptoCode, PaymentTypes.LightningLike);
|
||||
|
@ -65,7 +60,7 @@ namespace BTCPayServer.Controllers
|
|||
var network = vm.CryptoCode == null ? null : _ExplorerProvider.GetNetwork(vm.CryptoCode);
|
||||
|
||||
var internalLightning = GetInternalLighningNode(network.CryptoCode);
|
||||
vm.InternalLightningNode = internalLightning?.ToUri(true)?.AbsoluteUri;
|
||||
vm.InternalLightningNode = internalLightning?.UriWithCreds?.AbsoluteUri;
|
||||
if (network == null)
|
||||
{
|
||||
ModelState.AddModelError(nameof(vm.CryptoCode), "Invalid network");
|
||||
|
@ -82,7 +77,7 @@ namespace BTCPayServer.Controllers
|
|||
return View(vm);
|
||||
}
|
||||
|
||||
var internalDomain = internalLightning?.ToUri(false)?.DnsSafeHost;
|
||||
var internalDomain = internalLightning?.UriPlain?.DnsSafeHost;
|
||||
bool isLocal = (internalDomain == "127.0.0.1" || internalDomain == "localhost");
|
||||
|
||||
bool isInternalNode = connectionString.ConnectionType == LightningConnectionType.CLightning ||
|
||||
|
|
|
@ -461,7 +461,7 @@ namespace BTCPayServer.Controllers
|
|||
vm.LightningNodes.Add(new StoreViewModel.LightningNode()
|
||||
{
|
||||
CryptoCode = network.CryptoCode,
|
||||
Address = lightning?.GetLightningUrl()?.BaseUri.AbsoluteUri ?? string.Empty
|
||||
Address = lightning?.GetLightningUrl()?.UriPlain.AbsoluteUri ?? string.Empty
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,11 +15,11 @@ namespace BTCPayServer.Payments.Lightning
|
|||
var connString = supportedPaymentMethod.GetLightningUrl();
|
||||
if (connString.ConnectionType == LightningConnectionType.Charge)
|
||||
{
|
||||
return new ChargeClient(connString.ToUri(true), network.NBitcoinNetwork);
|
||||
return new ChargeClient(connString.UriWithCreds, network.NBitcoinNetwork);
|
||||
}
|
||||
else if (connString.ConnectionType == LightningConnectionType.CLightning)
|
||||
{
|
||||
return new CLightningRPCClient(connString.ToUri(false), network.NBitcoinNetwork);
|
||||
return new CLightningRPCClient(connString.UriPlain, network.NBitcoinNetwork);
|
||||
}
|
||||
else if (connString.ConnectionType == LightningConnectionType.Lnd)
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ namespace BTCPayServer.Payments.Lightning
|
|||
if (!String.IsNullOrEmpty(connString.Tls))
|
||||
tls = hex.DecodeData(connString.Tls);
|
||||
|
||||
var swagger = LndSwaggerClientCustomHttp.Create(connString.ToUri(false), network.NBitcoinNetwork, tls, macaroon);
|
||||
var swagger = LndSwaggerClientCustomHttp.Create(connString.UriPlain, network.NBitcoinNetwork, tls, macaroon);
|
||||
return new LndInvoiceClient(swagger);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace BTCPayServer.Payments.Lightning
|
|||
|
||||
public string Username { get; set; }
|
||||
public string Password { get; set; }
|
||||
public Uri BaseUri { get; set; }
|
||||
public Uri BaseUri { get; set; } // has no user and password
|
||||
|
||||
public LightningConnectionType ConnectionType { get; private set; }
|
||||
|
||||
|
@ -29,21 +29,19 @@ namespace BTCPayServer.Payments.Lightning
|
|||
public string Macaroon { get; set; }
|
||||
//
|
||||
|
||||
public Uri ToUri(bool withCredentials)
|
||||
public Uri UriWithCreds
|
||||
{
|
||||
if (withCredentials)
|
||||
{
|
||||
return new UriBuilder(BaseUri) { UserName = Username ?? "", Password = Password ?? "" }.Uri;
|
||||
}
|
||||
else
|
||||
{
|
||||
return BaseUri;
|
||||
}
|
||||
get { return new UriBuilder(BaseUri) { UserName = Username ?? "", Password = Password ?? "" }.Uri; }
|
||||
}
|
||||
|
||||
public Uri UriPlain
|
||||
{
|
||||
get { return BaseUri; }
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return ToUri(true).AbsoluteUri;
|
||||
return UriWithCreds.AbsoluteUri;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -89,7 +87,7 @@ namespace BTCPayServer.Payments.Lightning
|
|||
result.ConnectionType = uri.Scheme == "http" || uri.Scheme == "https" ?
|
||||
LightningConnectionType.Charge :
|
||||
LightningConnectionType.CLightning;
|
||||
|
||||
|
||||
// TODO: We need to redo the way Lightning connection strings are detected
|
||||
// now that we have Lnd and we can't depend on
|
||||
// http => Charge
|
||||
|
|
Loading…
Add table
Reference in a new issue