Cleaning up Webhooks code

This commit is contained in:
rockstardev
2025-06-01 23:41:42 -05:00
parent fd5800a826
commit be543b76e4
12 changed files with 419 additions and 471 deletions

View File

@@ -8,31 +8,25 @@ using WebhookDeliveryData = BTCPayServer.Data.WebhookDeliveryData;
namespace BTCPayServer.HostedServices.Webhooks;
public class PaymentRequestWebhookProvider: WebhookProvider<PaymentRequestEvent>
public class PaymentRequestWebhookProvider(EventAggregator eventAggregator, ILogger<PaymentRequestWebhookProvider> logger, WebhookSender webhookSender)
: WebhookProvider<PaymentRequestEvent>(eventAggregator, logger, webhookSender)
{
public PaymentRequestWebhookProvider(EventAggregator eventAggregator, ILogger<PaymentRequestWebhookProvider> logger, WebhookSender webhookSender) : base(eventAggregator, logger, webhookSender)
{
}
public override Dictionary<string, string> GetSupportedWebhookTypes()
{
return new Dictionary<string, string>()
return new Dictionary<string, string>
{
{WebhookEventType.PaymentRequestCreated, "Payment Request - Created"},
{WebhookEventType.PaymentRequestUpdated, "Payment Request - Updated"},
{WebhookEventType.PaymentRequestArchived, "Payment Request - Archived"},
{WebhookEventType.PaymentRequestStatusChanged, "Payment Request - Status Changed"},
{WebhookEventType.PaymentRequestCompleted, "Payment Request - Completed"},
{ WebhookEventType.PaymentRequestCreated, "Payment Request - Created" },
{ WebhookEventType.PaymentRequestUpdated, "Payment Request - Updated" },
{ WebhookEventType.PaymentRequestArchived, "Payment Request - Archived" },
{ WebhookEventType.PaymentRequestStatusChanged, "Payment Request - Status Changed" },
{ WebhookEventType.PaymentRequestCompleted, "Payment Request - Completed" }
};
}
public override WebhookEvent CreateTestEvent(string type, object[] args)
{
var storeId = args[0].ToString();
return new WebhookPaymentRequestEvent(type, storeId)
{
PaymentRequestId = "__test__" + Guid.NewGuid() + "__test__"
};
string storeId = args[0].ToString();
return new WebhookPaymentRequestEvent(type, storeId) { PaymentRequestId = "__test__" + Guid.NewGuid() + "__test__" };
}
protected override WebhookPaymentRequestEvent GetWebhookEvent(PaymentRequestEvent evt)
@@ -50,20 +44,21 @@ public class PaymentRequestWebhookProvider: WebhookProvider<PaymentRequestEvent>
protected override WebhookSender.WebhookDeliveryRequest CreateDeliveryRequest(PaymentRequestEvent paymentRequestEvent, WebhookData webhook)
{
var webhookBlob = webhook?.GetBlob();
var webhookEvent = GetWebhookEvent(paymentRequestEvent)!;
WebhookBlob webhookBlob = webhook?.GetBlob();
WebhookPaymentRequestEvent webhookEvent = GetWebhookEvent(paymentRequestEvent)!;
webhookEvent.StoreId = paymentRequestEvent.Data.StoreDataId;
webhookEvent.PaymentRequestId = paymentRequestEvent.Data.Id;
webhookEvent.Status = paymentRequestEvent.Data.Status;
webhookEvent.WebhookId = webhook?.Id;
webhookEvent.IsRedelivery = false;
WebhookDeliveryData delivery = webhook is null? null: WebhookExtensions.NewWebhookDelivery(webhook.Id);
WebhookDeliveryData delivery = webhook is null ? null : WebhookExtensions.NewWebhookDelivery(webhook.Id);
if (delivery is not null)
{
webhookEvent.DeliveryId = delivery.Id;
webhookEvent.OriginalDeliveryId = delivery.Id;
webhookEvent.Timestamp = delivery.Timestamp;
}
return new PaymentRequestWebhookDeliveryRequest(paymentRequestEvent,webhook?.Id, webhookEvent, delivery, webhookBlob );
return new PaymentRequestWebhookDeliveryRequest(paymentRequestEvent, webhook?.Id, webhookEvent, delivery, webhookBlob);
}
}