Add basic Greenfield API Get and Delete operations for apps (#3894)

* Add basic Greenfield API Get and Delete operations for apps

Will follow-up with PATCH and also with GET which returns more than just basic data later. This sets up the basic stuff first.

* Add methods to LocalBTCPayServerClient
This commit is contained in:
Umar Bolatov
2022-06-26 18:14:16 -07:00
committed by GitHub
parent 61c6a2ab57
commit 95b9e4dfd9
5 changed files with 173 additions and 5 deletions

View File

@@ -20,11 +20,9 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using NBitcoin;
using NBXplorer.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using InvoiceData = BTCPayServer.Client.Models.InvoiceData;
using Language = BTCPayServer.Client.Models.Language;
@@ -75,6 +73,8 @@ namespace BTCPayServer.Controllers.Greenfield
private readonly GreenfieldStoreAutomatedLightningPayoutProcessorsController
_greenfieldStoreAutomatedLightningPayoutProcessorsController;
private readonly GreenfieldAppsController _greenFieldAppsController;
private readonly IServiceProvider _serviceProvider;
public BTCPayServerClientFactory(StoreRepository storeRepository,
@@ -106,6 +106,7 @@ namespace BTCPayServer.Controllers.Greenfield
greenfieldStoreAutomatedOnChainPayoutProcessorsController,
GreenfieldStoreAutomatedLightningPayoutProcessorsController
greenfieldStoreAutomatedLightningPayoutProcessorsController,
GreenfieldAppsController greenFieldAppsController,
IServiceProvider serviceProvider)
{
_storeRepository = storeRepository;
@@ -137,6 +138,7 @@ namespace BTCPayServer.Controllers.Greenfield
greenfieldStoreAutomatedOnChainPayoutProcessorsController;
_greenfieldStoreAutomatedLightningPayoutProcessorsController =
greenfieldStoreAutomatedLightningPayoutProcessorsController;
_greenFieldAppsController = greenFieldAppsController;
_serviceProvider = serviceProvider;
}
@@ -214,6 +216,7 @@ namespace BTCPayServer.Controllers.Greenfield
_greenfieldPayoutProcessorsController,
_greenfieldStoreAutomatedOnChainPayoutProcessorsController,
_greenfieldStoreAutomatedLightningPayoutProcessorsController,
_greenFieldAppsController,
new LocalHttpContextAccessor() {HttpContext = context}
);
}
@@ -259,6 +262,8 @@ namespace BTCPayServer.Controllers.Greenfield
private readonly GreenfieldStoreUsersController _greenfieldStoreUsersController;
private readonly GreenfieldAppsController _greenFieldAppsController;
public LocalBTCPayServerClient(
IServiceProvider serviceProvider,
GreenfieldStoreOnChainPaymentMethodsController chainPaymentMethodsController,
@@ -287,6 +292,7 @@ namespace BTCPayServer.Controllers.Greenfield
greenfieldStoreAutomatedOnChainPayoutProcessorsController,
GreenfieldStoreAutomatedLightningPayoutProcessorsController
greenfieldStoreAutomatedLightningPayoutProcessorsController,
GreenfieldAppsController greenFieldAppsController,
IHttpContextAccessor httpContextAccessor) : base(new Uri("https://dummy.local"), "", "")
{
_chainPaymentMethodsController = chainPaymentMethodsController;
@@ -315,6 +321,7 @@ namespace BTCPayServer.Controllers.Greenfield
greenfieldStoreAutomatedOnChainPayoutProcessorsController;
_greenfieldStoreAutomatedLightningPayoutProcessorsController =
greenfieldStoreAutomatedLightningPayoutProcessorsController;
_greenFieldAppsController = greenFieldAppsController;
var controllers = new[]
{
@@ -1278,5 +1285,24 @@ namespace BTCPayServer.Controllers.Greenfield
await _greenfieldPullPaymentController
.GetStorePayouts(storeId, includeCancelled));
}
public override async Task<PointOfSaleAppData> CreatePointOfSaleApp(
string storeId,
CreatePointOfSaleAppRequest request, CancellationToken token = default)
{
return GetFromActionResult<PointOfSaleAppData>(
await _greenFieldAppsController.CreatePointOfSaleApp(storeId, request));
}
public override async Task<AppDataBase> GetApp(string appId, CancellationToken token = default)
{
return GetFromActionResult<AppDataBase>(
await _greenFieldAppsController.GetApp(appId));
}
public override async Task DeleteApp(string appId, CancellationToken token = default)
{
HandleActionResult(await _greenFieldAppsController.DeleteApp(appId));
}
}
}