mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-01-18 05:12:51 +01:00
Refactoring: Introduce IUrlHelper.ActionAbsolute (#6513)
This commit is contained in:
parent
44dc6499cd
commit
8acf1c2d62
@ -104,11 +104,6 @@ public static class HttpRequestExtensions
|
||||
return isRelative ? request.GetAbsoluteRoot() + redirectUrl : redirectUrl;
|
||||
}
|
||||
|
||||
public static Uri GetAbsoluteUriNoPathBase(this HttpRequest request, string relativeOrAbsolute)
|
||||
{
|
||||
return GetAbsoluteUriNoPathBase(request, new Uri(relativeOrAbsolute, UriKind.RelativeOrAbsolute));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Will return an absolute URL.
|
||||
/// If `relativeOrAbsolute` is absolute, returns it.
|
||||
|
@ -15,7 +15,7 @@ namespace BTCPayServer.Tests.Mocks
|
||||
|
||||
public string Action(UrlActionContext actionContext)
|
||||
{
|
||||
return $"{_BaseUrl}mock";
|
||||
return $"/mock";
|
||||
}
|
||||
|
||||
public string Content(string contentPath)
|
||||
|
@ -171,9 +171,8 @@ namespace BTCPayServer.Controllers.Greenfield
|
||||
var allowedPayjoin = derivationScheme.IsHotWallet && Store.GetStoreBlob().PayJoinEnabled;
|
||||
if (allowedPayjoin)
|
||||
{
|
||||
var endpoint = Request.GetAbsoluteUriNoPathBase(
|
||||
Url.Action(nameof(PayJoinEndpointController.Submit), "PayJoinEndpoint",
|
||||
new { network.CryptoCode })).ToString();
|
||||
var endpoint = Url.ActionAbsolute(Request, nameof(PayJoinEndpointController.Submit), "PayJoinEndpoint",
|
||||
new { network.CryptoCode }).ToString();
|
||||
bip21.QueryParams.Add(PayjoinClient.BIP21EndpointKey, endpoint);
|
||||
}
|
||||
|
||||
|
@ -697,7 +697,7 @@ namespace BTCPayServer.Controllers
|
||||
var lnConfig = _LnConfigProvider.GetConfig(configKey);
|
||||
if (lnConfig != null)
|
||||
{
|
||||
model.QRCodeLink = Request.GetAbsoluteUriNoPathBase(Url.Action(nameof(GetLNDConfig), new { configKey })).ToString();
|
||||
model.QRCodeLink = Url.ActionAbsolute(Request, nameof(GetLNDConfig), new { configKey }).ToString();
|
||||
model.QRCode = $"config={model.QRCodeLink}";
|
||||
}
|
||||
}
|
||||
|
@ -404,9 +404,8 @@ namespace BTCPayServer.Controllers
|
||||
var bip21 = network.GenerateBIP21(address?.ToString(), null);
|
||||
if (allowedPayjoin)
|
||||
{
|
||||
var endpoint = Request.GetAbsoluteUriNoPathBase(
|
||||
Url.Action(nameof(PayJoinEndpointController.Submit), "PayJoinEndpoint",
|
||||
new { cryptoCode = walletId.CryptoCode })).ToString();
|
||||
var endpoint = Url.ActionAbsolute(Request, nameof(PayJoinEndpointController.Submit), "PayJoinEndpoint",
|
||||
new { cryptoCode = walletId.CryptoCode }).ToString();
|
||||
bip21.QueryParams.Add(PayjoinClient.BIP21EndpointKey, endpoint);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
|
||||
using System;
|
||||
using BTCPayServer;
|
||||
using BTCPayServer.Abstractions.Extensions;
|
||||
using BTCPayServer.Client.Models;
|
||||
using BTCPayServer.Controllers;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
@ -11,6 +12,12 @@ namespace Microsoft.AspNetCore.Mvc
|
||||
public static class UrlHelperExtensions
|
||||
{
|
||||
#nullable enable
|
||||
public static Uri ActionAbsolute(this IUrlHelper helper, HttpRequest request, string? action, string? controller, object? values)
|
||||
=> request.GetAbsoluteUriNoPathBase(new Uri(helper.Action(action, controller, values) ?? "", UriKind.Relative));
|
||||
public static Uri ActionAbsolute(this IUrlHelper helper, HttpRequest request, string? action, string? controller)
|
||||
=> request.GetAbsoluteUriNoPathBase(new Uri(helper.Action(action, controller) ?? "", UriKind.Relative));
|
||||
public static Uri ActionAbsolute(this IUrlHelper helper, HttpRequest request, string? action, object? values)
|
||||
=> request.GetAbsoluteUriNoPathBase(new Uri(helper.Action(action, values) ?? "", UriKind.Relative));
|
||||
public static string? EnsureLocal(this IUrlHelper helper, string? url, HttpRequest? httpRequest = null)
|
||||
{
|
||||
if (url is null || helper.IsLocalUrl(url))
|
||||
|
@ -348,7 +348,7 @@ namespace BTCPayServer.Plugins.PointOfSale.Controllers
|
||||
RedirectAutomatically = settings.RedirectAutomatically,
|
||||
RedirectURL = !string.IsNullOrEmpty(redirectUrl) ? redirectUrl
|
||||
: !string.IsNullOrEmpty(settings.RedirectUrl) ? settings.RedirectUrl
|
||||
: Request.GetAbsoluteUriNoPathBase(Url.Action(nameof(ViewPointOfSale), "UIPointOfSale", new { appId, viewType })).ToString(),
|
||||
: Url.ActionAbsolute(Request, nameof(ViewPointOfSale), "UIPointOfSale", new { appId, viewType }).ToString(),
|
||||
PaymentMethods = paymentMethods?.Where(p => p.Value.Enabled).Select(p => p.Key).ToArray()
|
||||
},
|
||||
AdditionalSearchTerms = new[] { AppService.GetAppSearchTerm(app) }
|
||||
@ -534,7 +534,7 @@ namespace BTCPayServer.Plugins.PointOfSale.Controllers
|
||||
{
|
||||
var controller = nameof(UIPointOfSaleController).TrimEnd("Controller", StringComparison.InvariantCulture);
|
||||
var redirectUrl =
|
||||
Request.GetAbsoluteUriNoPathBase(Url.Action(nameof(ViewPointOfSale), controller, new { appId, viewType })).ToString();
|
||||
Url.ActionAbsolute(Request, nameof(ViewPointOfSale), controller, new { appId, viewType }).ToString();
|
||||
formParameters.Add("formResponse", FormDataService.GetValues(form).ToString());
|
||||
return View("PostRedirect", new PostRedirectViewModel
|
||||
{
|
||||
|
@ -55,7 +55,7 @@ Vue.component("lnurl-withdraw-checkout", {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
url: @Safe.Json(Context.Request.GetAbsoluteUriNoPathBase(Url.Action("SubmitLNURLWithdrawForInvoice", "NFC")).ToString()),
|
||||
url: @Safe.Json(Url.ActionAbsolute(Context.Request, "SubmitLNURLWithdrawForInvoice", "NFC").ToString()),
|
||||
amount: 0,
|
||||
submitting: false
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user