switch pos to metadata in invoice create view (#5412)

Co-authored-by: d11n <mail@dennisreimann.de>
This commit is contained in:
Andrew Camilleri
2023-11-02 08:13:48 +01:00
committed by GitHub
parent 27c22d5e33
commit e82281d273
3 changed files with 37 additions and 15 deletions

View File

@@ -1258,6 +1258,19 @@ namespace BTCPayServer.Controllers
model.CheckoutType = storeBlob.CheckoutType;
model.AvailablePaymentMethods = GetPaymentMethodsSelectList();
JObject? metadataObj = null;
if (!string.IsNullOrEmpty(model.Metadata))
{
try
{
metadataObj = JObject.Parse(model.Metadata);
}
catch (Exception e)
{
ModelState.AddModelError(nameof(model.Metadata), "Metadata was not valid JSON");
}
}
if (!ModelState.IsValid)
{
return View(model);
@@ -1276,17 +1289,27 @@ namespace BTCPayServer.Controllers
try
{
var metadata = metadataObj is null ? new InvoiceMetadata() : InvoiceMetadata.FromJObject(metadataObj);
if (!string.IsNullOrEmpty(model.OrderId))
{
metadata.OrderId = model.OrderId;
}
if (!string.IsNullOrEmpty(model.ItemDesc))
{
metadata.ItemDesc = model.ItemDesc;
}
if (!string.IsNullOrEmpty(model.BuyerEmail))
{
metadata.BuyerEmail = model.BuyerEmail;
}
var result = await CreateInvoiceCoreRaw(new CreateInvoiceRequest()
{
Amount = model.Amount,
Currency = model.Currency,
Metadata = new InvoiceMetadata()
{
PosDataLegacy = model.PosData,
OrderId = model.OrderId,
ItemDesc = model.ItemDesc,
BuyerEmail = model.BuyerEmail,
}.ToJObject(),
Metadata = metadata.ToJObject(),
Checkout = new ()
{
RedirectURL = store.StoreWebsite,