From 406848b76f0c84cb250b4c51fda71902116342de Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Mon, 11 Dec 2023 08:49:37 +0100 Subject: [PATCH] Remove date header from webhook request and use constants (#15407) * Remove date header * Move webhook event header names to constants --- src/Umbraco.Core/Constants-WebhookEvents.cs | 54 +++++++++++-------- .../BackgroundJobs/Jobs/WebhookFiring.cs | 7 ++- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/Umbraco.Core/Constants-WebhookEvents.cs b/src/Umbraco.Core/Constants-WebhookEvents.cs index 41b9849f08..28c4a42dd2 100644 --- a/src/Umbraco.Core/Constants-WebhookEvents.cs +++ b/src/Umbraco.Core/Constants-WebhookEvents.cs @@ -1,84 +1,96 @@ -namespace Umbraco.Cms.Core; +namespace Umbraco.Cms.Core; public static partial class Constants { public static class WebhookEvents { - public static class Aliases + public static class HeaderNames { + /// + /// Gets the Umb-Webhook-Event HTTP header name. + /// + public const string EventName = "Umb-Webhook-Event"; /// - /// Webhook event alias for content versions deleted + /// Gets the Umb-Webhook-RetryCount HTTP header name. + /// + public const string RetryCount = "Umb-Webhook-RetryCount"; + } + + public static class Aliases + { + /// + /// Webhook event alias for content versions deleted. /// public const string ContentDeletedVersions = "Umbraco.ContentDeletedVersions"; /// - /// Webhook event alias for content blueprint saved + /// Webhook event alias for content blueprint saved. /// public const string ContentSavedBlueprint = "Umbraco.ContentSavedBlueprint"; /// - /// Webhook event alias for content blueprint deleted + /// Webhook event alias for content blueprint deleted. /// public const string ContentDeletedBlueprint = "Umbraco.ContentDeletedBlueprint"; /// - /// Webhook event alias for content moved into the recycle bin. + /// Webhook event alias for content moved into the recycle bin. /// public const string ContentMovedToRecycleBin = "Umbraco.ContentMovedToRecycleBin"; /// - /// Webhook event alias for content sorted. + /// Webhook event alias for content sorted. /// public const string ContentSorted = "Umbraco.ContentSorted"; /// - /// Webhook event alias for content moved. + /// Webhook event alias for content moved. /// public const string ContentMoved = "Umbraco.ContentMoved"; /// - /// Webhook event alias for content copied. + /// Webhook event alias for content copied. /// public const string ContentCopied = "Umbraco.ContentCopied"; /// - /// Webhook event alias for content emptied recycle bin. + /// Webhook event alias for content emptied recycle bin. /// public const string ContentEmptiedRecycleBin = "Umbraco.ContentEmptiedRecycleBin"; /// - /// Webhook event alias for content rolled back. + /// Webhook event alias for content rolled back. /// public const string ContentRolledBack = "Umbraco.ContentRolledBack"; /// - /// Webhook event alias for content saved. + /// Webhook event alias for content saved. /// public const string ContentSaved = "Umbraco.ContentSaved"; /// - /// Webhook event alias for content publish. + /// Webhook event alias for content publish. /// public const string ContentPublish = "Umbraco.ContentPublish"; /// - /// Webhook event alias for content delete. + /// Webhook event alias for content delete. /// public const string ContentDelete = "Umbraco.ContentDelete"; /// - /// Webhook event alias for content unpublish. + /// Webhook event alias for content unpublish. /// public const string ContentUnpublish = "Umbraco.ContentUnpublish"; /// - /// Webhook event alias for media delete. + /// Webhook event alias for media delete. /// public const string MediaDelete = "Umbraco.MediaDelete"; /// - /// Webhook event alias for media save. + /// Webhook event alias for media save. /// public const string MediaSave = "Umbraco.MediaSave"; } @@ -86,22 +98,22 @@ public static partial class Constants public static class Types { /// - /// Webhook event type for content. + /// Webhook event type for content. /// public const string Content = "Content"; /// - /// Webhook event type for content media. + /// Webhook event type for content media. /// public const string Media = "Media"; /// - /// Webhook event type for content member. + /// Webhook event type for content member. /// public const string Member = "Member"; /// - /// Webhook event type for others, this is the default category if you have not chosen one. + /// Webhook event type for others, this is the default category if you have not chosen one. /// public const string Other = "Other"; } diff --git a/src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs b/src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs index bda15fd389..e6d25aff0e 100644 --- a/src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs +++ b/src/Umbraco.Infrastructure/BackgroundJobs/Jobs/WebhookFiring.cs @@ -1,4 +1,4 @@ -using System.Net.Mime; +using System.Net.Mime; using System.Text; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -101,9 +101,8 @@ public class WebhookFiring : IRecurringBackgroundJob try { // Add headers - request.Headers.Add("Umb-Webhook-Event", eventName); - request.Headers.Add("Umb-Webhook-RetryCount", retryCount.ToString()); - request.Headers.Add("Umb-Webhook-Date", DateTime.Now.ToString("R")); + request.Headers.Add(Constants.WebhookEvents.HeaderNames.EventName, eventName); + request.Headers.Add(Constants.WebhookEvents.HeaderNames.RetryCount, retryCount.ToString()); foreach (KeyValuePair header in webhook.Headers) {