mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-03-12 10:30:47 +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.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.ToString());
|
||||||
Assert.Equal("http://lnd:lnd@127.0.0.1:53280/", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("http://lnd:lnd@127.0.0.1:53280/", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("http://127.0.0.1:53280/", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("http://127.0.0.1:53280/", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.Lnd, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.Lnd, conn.ConnectionType);
|
||||||
Assert.Equal(macaroon, conn.Macaroon);
|
Assert.Equal(macaroon, conn.Macaroon);
|
||||||
Assert.Equal(tls, conn.Tls);
|
Assert.Equal(tls, conn.Tls);
|
||||||
|
|
||||||
Assert.True(LightningConnectionString.TryParse("/test/a", out conn));
|
Assert.True(LightningConnectionString.TryParse("/test/a", out conn));
|
||||||
Assert.Equal("unix://test/a", conn.ToString());
|
Assert.Equal("unix://test/a", conn.ToString());
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||||
|
|
||||||
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
||||||
Assert.Equal("unix://test/a", conn.ToString());
|
Assert.Equal("unix://test/a", conn.ToString());
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||||
|
|
||||||
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
Assert.True(LightningConnectionString.TryParse("unix://test/a", out conn));
|
||||||
Assert.Equal("unix://test/a", conn.ToString());
|
Assert.Equal("unix://test/a", conn.ToString());
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("unix://test/a", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("unix://test/a", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||||
|
|
||||||
Assert.True(LightningConnectionString.TryParse("tcp://test/a", out conn));
|
Assert.True(LightningConnectionString.TryParse("tcp://test/a", out conn));
|
||||||
Assert.Equal("tcp://test/a", conn.ToString());
|
Assert.Equal("tcp://test/a", conn.ToString());
|
||||||
Assert.Equal("tcp://test/a", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("tcp://test/a", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("tcp://test/a", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("tcp://test/a", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.CLightning, conn.ConnectionType);
|
||||||
|
|
||||||
Assert.True(LightningConnectionString.TryParse("http://aaa:bbb@test/a", out conn));
|
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.ToString());
|
||||||
Assert.Equal("http://aaa:bbb@test/a", conn.ToUri(true).AbsoluteUri);
|
Assert.Equal("http://aaa:bbb@test/a", conn.UriWithCreds.AbsoluteUri);
|
||||||
Assert.Equal("http://test/a", conn.ToUri(false).AbsoluteUri);
|
Assert.Equal("http://test/a", conn.UriPlain.AbsoluteUri);
|
||||||
Assert.Equal(LightningConnectionType.Charge, conn.ConnectionType);
|
Assert.Equal(LightningConnectionType.Charge, conn.ConnectionType);
|
||||||
Assert.Equal("aaa", conn.Username);
|
Assert.Equal("aaa", conn.Username);
|
||||||
Assert.Equal("bbb", conn.Password);
|
Assert.Equal("bbb", conn.Password);
|
||||||
|
|
|
@ -26,16 +26,11 @@ namespace BTCPayServer.Controllers
|
||||||
return NotFound();
|
return NotFound();
|
||||||
LightningNodeViewModel vm = new LightningNodeViewModel();
|
LightningNodeViewModel vm = new LightningNodeViewModel();
|
||||||
vm.CryptoCode = cryptoCode;
|
vm.CryptoCode = cryptoCode;
|
||||||
vm.InternalLightningNode = GetInternalLighningNode(cryptoCode)?.ToUri(true)?.AbsoluteUri;
|
vm.InternalLightningNode = GetInternalLighningNode(cryptoCode)?.UriWithCreds?.AbsoluteUri;
|
||||||
SetExistingValues(store, vm);
|
vm.Url = GetExistingLightningSupportedPaymentMethod(vm.CryptoCode, store)?.GetLightningUrl()?.UriWithCreds.AbsoluteUri;
|
||||||
return View(vm);
|
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)
|
private LightningSupportedPaymentMethod GetExistingLightningSupportedPaymentMethod(string cryptoCode, StoreData store)
|
||||||
{
|
{
|
||||||
var id = new PaymentMethodId(cryptoCode, PaymentTypes.LightningLike);
|
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 network = vm.CryptoCode == null ? null : _ExplorerProvider.GetNetwork(vm.CryptoCode);
|
||||||
|
|
||||||
var internalLightning = GetInternalLighningNode(network.CryptoCode);
|
var internalLightning = GetInternalLighningNode(network.CryptoCode);
|
||||||
vm.InternalLightningNode = internalLightning?.ToUri(true)?.AbsoluteUri;
|
vm.InternalLightningNode = internalLightning?.UriWithCreds?.AbsoluteUri;
|
||||||
if (network == null)
|
if (network == null)
|
||||||
{
|
{
|
||||||
ModelState.AddModelError(nameof(vm.CryptoCode), "Invalid network");
|
ModelState.AddModelError(nameof(vm.CryptoCode), "Invalid network");
|
||||||
|
@ -82,7 +77,7 @@ namespace BTCPayServer.Controllers
|
||||||
return View(vm);
|
return View(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
var internalDomain = internalLightning?.ToUri(false)?.DnsSafeHost;
|
var internalDomain = internalLightning?.UriPlain?.DnsSafeHost;
|
||||||
bool isLocal = (internalDomain == "127.0.0.1" || internalDomain == "localhost");
|
bool isLocal = (internalDomain == "127.0.0.1" || internalDomain == "localhost");
|
||||||
|
|
||||||
bool isInternalNode = connectionString.ConnectionType == LightningConnectionType.CLightning ||
|
bool isInternalNode = connectionString.ConnectionType == LightningConnectionType.CLightning ||
|
||||||
|
|
|
@ -461,7 +461,7 @@ namespace BTCPayServer.Controllers
|
||||||
vm.LightningNodes.Add(new StoreViewModel.LightningNode()
|
vm.LightningNodes.Add(new StoreViewModel.LightningNode()
|
||||||
{
|
{
|
||||||
CryptoCode = network.CryptoCode,
|
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();
|
var connString = supportedPaymentMethod.GetLightningUrl();
|
||||||
if (connString.ConnectionType == LightningConnectionType.Charge)
|
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)
|
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)
|
else if (connString.ConnectionType == LightningConnectionType.Lnd)
|
||||||
{
|
{
|
||||||
|
@ -33,7 +33,7 @@ namespace BTCPayServer.Payments.Lightning
|
||||||
if (!String.IsNullOrEmpty(connString.Tls))
|
if (!String.IsNullOrEmpty(connString.Tls))
|
||||||
tls = hex.DecodeData(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);
|
return new LndInvoiceClient(swagger);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace BTCPayServer.Payments.Lightning
|
||||||
|
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public string Password { 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; }
|
public LightningConnectionType ConnectionType { get; private set; }
|
||||||
|
|
||||||
|
@ -29,21 +29,19 @@ namespace BTCPayServer.Payments.Lightning
|
||||||
public string Macaroon { get; set; }
|
public string Macaroon { get; set; }
|
||||||
//
|
//
|
||||||
|
|
||||||
public Uri ToUri(bool withCredentials)
|
public Uri UriWithCreds
|
||||||
{
|
{
|
||||||
if (withCredentials)
|
get { return new UriBuilder(BaseUri) { UserName = Username ?? "", Password = Password ?? "" }.Uri; }
|
||||||
{
|
|
||||||
return new UriBuilder(BaseUri) { UserName = Username ?? "", Password = Password ?? "" }.Uri;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
public Uri UriPlain
|
||||||
{
|
{
|
||||||
return BaseUri;
|
get { return BaseUri; }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return ToUri(true).AbsoluteUri;
|
return UriWithCreds.AbsoluteUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Add table
Reference in a new issue