add swagger docs

This commit is contained in:
Kukks
2020-07-24 12:46:46 +02:00
committed by nicolas.dorier
parent 4917f32574
commit 41bebfedc4
9 changed files with 907 additions and 18 deletions

View File

@@ -34,8 +34,8 @@ namespace BTCPayServer.Controllers.GreenField
[Authorize(Policy = Policies.CanViewInvoices,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpGet("~/api/v1/stores/{storeId}/invoices/{invoiceId}")]
public async Task<IActionResult> GetInvoices(string storeId)
[HttpGet("~/api/v1/stores/{storeId}/invoices")]
public async Task<IActionResult> GetInvoices(string storeId, bool includeArchived = false)
{
var store = HttpContext.GetStoreData();
if (store == null)
@@ -46,7 +46,7 @@ namespace BTCPayServer.Controllers.GreenField
var invoices =
await _invoiceRepository.GetInvoices(new InvoiceQuery()
{
StoreId = new[] {store.Id}, IncludeArchived = false
StoreId = new[] {store.Id}, IncludeArchived = includeArchived
});
return Ok(invoices.Select(ToModel));
@@ -104,6 +104,11 @@ namespace BTCPayServer.Controllers.GreenField
ModelState.AddModelError(nameof(request.Amount), "The amount should be 0 or more.");
}
if (string.IsNullOrEmpty(request.Currency))
{
ModelState.AddModelError(nameof(request.Currency), "Currency is required");
}
if (request.Checkout.PaymentMethods?.Any() is true)
{
for (int i = 0; i < request.Checkout.PaymentMethods.Length; i++)
@@ -139,14 +144,21 @@ namespace BTCPayServer.Controllers.GreenField
if (!ModelState.IsValid)
return this.CreateValidationError(ModelState);
var invoice = await _invoiceController.CreateInvoiceCoreRaw(FromModel(request), store,
Request.GetAbsoluteUri(""));
return Ok(ToModel(invoice));
try
{
var invoice = await _invoiceController.CreateInvoiceCoreRaw(FromModel(request), store,
Request.GetAbsoluteUri(""));
return Ok(ToModel(invoice));
}
catch (BitpayHttpException e)
{
return this.CreateAPIError(null, e.Message);
}
}
[Authorize(Policy = Policies.CanModifyStoreSettings,
AuthenticationSchemes = AuthenticationSchemes.Greenfield)]
[HttpPost("~/api/v1/stores/{storeId}/invoices/{invoiceId}")]
[HttpPut("~/api/v1/stores/{storeId}/invoices/{invoiceId}")]
public async Task<IActionResult> UpdateInvoice(string storeId, string invoiceId, UpdateInvoiceRequest request)
{
var store = HttpContext.GetStoreData();
@@ -242,7 +254,7 @@ namespace BTCPayServer.Controllers.GreenField
PaymentMethods =
entity.GetPaymentMethods().Select(method => method.GetId().ToString()).ToArray(),
RedirectAutomatically = entity.RedirectAutomatically,
RedirectUri = entity.RedirectURL.ToString(),
RedirectUri = entity.RedirectURL?.ToString(),
SpeedPolicy = entity.SpeedPolicy,
WebHook = entity.NotificationURL
},