From 6ff4d27d4716f45f25b3b04f1fef0fd4023534dd Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com> Date: Thu, 27 Oct 2022 08:46:21 +0200 Subject: [PATCH] New backoffice: Cleanup management API routes (#13296) * Rename ModelsBuilderDashboard folder to ModelsBuilder * Fix modelsbuilder paths and related naming * Rename analytics route to telemetry * Fix controller bases - routes and tags * Fix items route * Fix more controllerbase routes * Fix route * Fix OpenApi file * Merging DictionaryItem and Dictionary * Fix TrackedReferences naming * Update OpenApi file * Rename Analytics* related types to Telemetry* * New Backoffice: Return AnalyticsLevelViewModel from Telemetry/ (#13298) * Return TelemetryLevelViewModel instead of TelemetryLevel * Fix schema * Change telemetry/current to telemetry/level (cherry picked from commit f2b8494c669cbbf04b623753abbf1be211973aa9) * Add contants for tree and recycle-bin subpaths (cherry picked from commit 4449f56bc00832ea6d357a3854b454791c80e0e2) Co-authored-by: Mole --- .../Analytics/AllAnalyticsController.cs | 22 - .../Analytics/AnalyticsControllerBase.cs | 13 - .../Analytics/GetAnalyticsController.cs | 18 - .../Tree/DataTypeTreeControllerBase.cs | 4 +- .../Tree/ItemsDataTypeTreeController.cs | 2 +- .../Tree/ChildrenDictionaryTreeController.cs} | 6 +- .../Tree/DictionaryTreeControllerBase.cs} | 12 +- .../Tree/ItemsDictionaryTreeController.cs} | 8 +- .../Tree/RootDictionaryTreeController.cs} | 6 +- .../DocumentRecycleBinControllerBase.cs | 2 +- .../Tree/DocumentTreeControllerBase.cs | 2 +- .../Tree/ItemsDocumentTreeController.cs | 2 +- .../DocumentBlueprintTreeControllerBase.cs | 4 +- .../ItemsDocumentBlueprintTreeController.cs | 2 +- .../Tree/DocumentTypeTreeControllerBase.cs | 4 +- .../Tree/ItemsDocumentTypeTreeController.cs | 2 +- .../MediaRecycleBinControllerBase.cs | 2 +- .../Media/Tree/ItemsMediaTreeController.cs | 2 +- .../Media/Tree/MediaTreeControllerBase.cs | 2 +- .../Tree/ItemsMediaTypeTreeController.cs | 2 +- .../Tree/MediaTypeTreeControllerBase.cs | 4 +- .../Tree/ItemsMemberGroupTreeController.cs | 2 +- .../Tree/MemberGroupTreeControllerBase.cs | 4 +- .../Tree/ItemsMemberTypeTreeController.cs | 2 +- .../Tree/MemberTypeTreeControllerBase.cs | 4 +- .../BuildModelsBuilderController.cs | 2 +- .../GetModelsBuilderController.cs | 4 +- .../ModelsBuilderControllerBase.cs | 4 +- .../StatusModelsBuilderController.cs | 2 +- .../Tree/ItemsPartialViewTreeController.cs | 2 +- .../Tree/PartialViewTreeControllerBase.cs | 4 +- .../PublishedCacheControllerBase.cs | 2 +- .../Relation/ByChildRelationController.cs | 2 +- .../Tree/ItemsRelationTypeTreeController.cs | 2 +- .../Tree/RelationTypeTreeControllerBase.cs | 4 +- .../Script/Tree/ItemsScriptTreeController.cs | 2 +- .../Script/Tree/ScriptTreeControllerBase.cs | 2 +- .../Tree/ItemsStaticFileTreeController.cs | 2 +- .../Tree/StaticFileTreeControllerBase.cs | 4 +- .../Tree/ItemsStylesheetTreeController.cs | 2 +- .../Tree/StylesheetTreeControllerBase.cs | 2 +- .../Telemetry/AllTelemetryController.cs | 23 + .../Telemetry/GetTelemetryController.cs | 18 + .../SetTelemetryController.cs} | 21 +- .../Telemetry/TelemetryControllerBase.cs | 13 + .../Tree/ItemsTemplateTreeController.cs | 2 +- .../Tree/TemplateTreeControllerBase.cs | 2 +- .../ByIdTrackedReferenceController.cs} | 6 +- .../DescendantsTrackedReferenceController.cs} | 6 +- .../ItemsTrackedReferenceController.cs} | 8 +- .../TrackedReferencesControllerBase.cs | 8 +- src/Umbraco.Cms.ManagementApi/OpenApi.json | 611 +++++++++--------- .../Analytics/AnalyticsLevelViewModel.cs | 10 - .../Telemetry/TelemetryLevelViewModel.cs | 10 + src/Umbraco.Core/Constants-Web.cs | 6 + .../NewBackoffice/OpenAPIContractTest.cs | 4 - 56 files changed, 454 insertions(+), 469 deletions(-) delete mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AllAnalyticsController.cs delete mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs delete mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Analytics/GetAnalyticsController.cs rename src/Umbraco.Cms.ManagementApi/Controllers/{DictionaryItem/Tree/ChildrenDictionaryItemTreeController.cs => Dictionary/Tree/ChildrenDictionaryTreeController.cs} (82%) rename src/Umbraco.Cms.ManagementApi/Controllers/{DictionaryItem/Tree/DictionaryItemTreeControllerBase.cs => Dictionary/Tree/DictionaryTreeControllerBase.cs} (78%) rename src/Umbraco.Cms.ManagementApi/Controllers/{DictionaryItem/Tree/ItemsDictionaryItemTreeController.cs => Dictionary/Tree/ItemsDictionaryTreeController.cs} (72%) rename src/Umbraco.Cms.ManagementApi/Controllers/{DictionaryItem/Tree/RootDictionaryItemTreeController.cs => Dictionary/Tree/RootDictionaryTreeController.cs} (82%) rename src/Umbraco.Cms.ManagementApi/Controllers/{ModelsBuilderDashboard => ModelsBuilder}/BuildModelsBuilderController.cs (96%) rename src/Umbraco.Cms.ManagementApi/Controllers/{ModelsBuilderDashboard => ModelsBuilder}/GetModelsBuilderController.cs (89%) rename src/Umbraco.Cms.ManagementApi/Controllers/{ModelsBuilderDashboard => ModelsBuilder}/ModelsBuilderControllerBase.cs (72%) rename src/Umbraco.Cms.ManagementApi/Controllers/{ModelsBuilderDashboard => ModelsBuilder}/StatusModelsBuilderController.cs (94%) create mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/AllTelemetryController.cs create mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/GetTelemetryController.cs rename src/Umbraco.Cms.ManagementApi/Controllers/{Analytics/SetAnalyticsController.cs => Telemetry/SetTelemetryController.cs} (51%) create mode 100644 src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/TelemetryControllerBase.cs rename src/Umbraco.Cms.ManagementApi/Controllers/{TrackedReferences/ForItemTrackedReferencesController.cs => TrackedReference/ByIdTrackedReferenceController.cs} (89%) rename src/Umbraco.Cms.ManagementApi/Controllers/{TrackedReferences/DescendantsTrackedReferencesController.cs => TrackedReference/DescendantsTrackedReferenceController.cs} (89%) rename src/Umbraco.Cms.ManagementApi/Controllers/{TrackedReferences/MultipleTrackedReferencesController.cs => TrackedReference/ItemsTrackedReferenceController.cs} (87%) rename src/Umbraco.Cms.ManagementApi/Controllers/{TrackedReferences => TrackedReference}/TrackedReferencesControllerBase.cs (54%) delete mode 100644 src/Umbraco.Cms.ManagementApi/ViewModels/Analytics/AnalyticsLevelViewModel.cs create mode 100644 src/Umbraco.Cms.ManagementApi/ViewModels/Telemetry/TelemetryLevelViewModel.cs diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AllAnalyticsController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AllAnalyticsController.cs deleted file mode 100644 index 780d6f90d3..0000000000 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AllAnalyticsController.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Models; -using Umbraco.Cms.ManagementApi.ViewModels.Pagination; - -namespace Umbraco.Cms.ManagementApi.Controllers.Analytics; - -public class AllAnalyticsController : AnalyticsControllerBase -{ - [HttpGet("all")] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] - public async Task> GetAll(int skip, int take) - { - TelemetryLevel[] levels = Enum.GetValues(); - return await Task.FromResult(new PagedViewModel - { - Total = levels.Length, - Items = levels.Skip(skip).Take(take), - }); - } -} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs deleted file mode 100644 index 1ce29ea5c6..0000000000 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using NSwag.Annotations; -using Umbraco.New.Cms.Web.Common.Routing; - -namespace Umbraco.Cms.ManagementApi.Controllers.Analytics; - -[ApiController] -[VersionedApiBackOfficeRoute("analytics")] -[OpenApiTag("Analytics")] -[ApiVersion("1.0")] -public abstract class AnalyticsControllerBase : ManagementApiControllerBase -{ -} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/GetAnalyticsController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/GetAnalyticsController.cs deleted file mode 100644 index 1c45e41e71..0000000000 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/GetAnalyticsController.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Umbraco.Cms.Core.Services; -using Umbraco.Cms.ManagementApi.ViewModels.Analytics; - -namespace Umbraco.Cms.ManagementApi.Controllers.Analytics; - -public class GetAnalyticsController : AnalyticsControllerBase -{ - private readonly IMetricsConsentService _metricsConsentService; - - public GetAnalyticsController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; - - [HttpGet] - [MapToApiVersion("1.0")] - [ProducesResponseType(typeof(AnalyticsLevelViewModel), StatusCodes.Status200OK)] - public async Task Get() => await Task.FromResult(new AnalyticsLevelViewModel { AnalyticsLevel = _metricsConsentService.GetConsentLevel() }); -} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs index 4bdae5a2fa..8c0c6598ae 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/DataTypeTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.DataType.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.DataType}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.DataType))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DataType}")] +[OpenApiTag("Data Type")] public class DataTypeTreeControllerBase : FolderTreeControllerBase { private readonly IDataTypeService _dataTypeService; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs index 82eabcb6f4..34779cca3d 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DataType/Tree/ItemsDataTypeTreeController.cs @@ -12,7 +12,7 @@ public class ItemsDataTypeTreeController : DataTypeTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ChildrenDictionaryItemTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs similarity index 82% rename from src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ChildrenDictionaryItemTreeController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs index 0969b808c9..8b2e6b2328 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ChildrenDictionaryItemTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ChildrenDictionaryTreeController.cs @@ -6,11 +6,11 @@ using Umbraco.Cms.ManagementApi.Services.Paging; using Umbraco.Cms.ManagementApi.ViewModels.Pagination; using Umbraco.Cms.ManagementApi.ViewModels.Tree; -namespace Umbraco.Cms.ManagementApi.Controllers.DictionaryItem.Tree; +namespace Umbraco.Cms.ManagementApi.Controllers.Dictionary.Tree; -public class ChildrenDictionaryItemTreeController : DictionaryItemTreeControllerBase +public class ChildrenDictionaryTreeController : DictionaryTreeControllerBase { - public ChildrenDictionaryItemTreeController(IEntityService entityService, ILocalizationService localizationService) + public ChildrenDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) : base(entityService, localizationService) { } diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/DictionaryItemTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs similarity index 78% rename from src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/DictionaryItemTreeControllerBase.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs index 0d6a513e2d..c91a267c9f 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/DictionaryItemTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/DictionaryTreeControllerBase.cs @@ -7,17 +7,17 @@ using Umbraco.Cms.ManagementApi.Controllers.Tree; using Umbraco.Cms.ManagementApi.ViewModels.Tree; using Umbraco.New.Cms.Web.Common.Routing; -namespace Umbraco.Cms.ManagementApi.Controllers.DictionaryItem.Tree; +namespace Umbraco.Cms.ManagementApi.Controllers.Dictionary.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.DictionaryItem}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.DictionaryItem))] -// NOTE: at the moment dictionary items aren't supported by EntityService, so we have little use of the +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/dictionary")] +[OpenApiTag("Dictionary")] +// NOTE: at the moment dictionary items (renamed to dictionary tree) aren't supported by EntityService, so we have little use of the // tree controller base. We'll keep it though, in the hope that we can mend EntityService. -public class DictionaryItemTreeControllerBase : EntityTreeControllerBase +public class DictionaryTreeControllerBase : EntityTreeControllerBase { - public DictionaryItemTreeControllerBase(IEntityService entityService, ILocalizationService localizationService) + public DictionaryTreeControllerBase(IEntityService entityService, ILocalizationService localizationService) : base(entityService) => LocalizationService = localizationService; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ItemsDictionaryItemTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs similarity index 72% rename from src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ItemsDictionaryItemTreeController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs index 69d2fda33d..ea2de2058a 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/ItemsDictionaryItemTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/ItemsDictionaryTreeController.cs @@ -4,16 +4,16 @@ using Umbraco.Cms.Core.Models; using Umbraco.Cms.Core.Services; using Umbraco.Cms.ManagementApi.ViewModels.Tree; -namespace Umbraco.Cms.ManagementApi.Controllers.DictionaryItem.Tree; +namespace Umbraco.Cms.ManagementApi.Controllers.Dictionary.Tree; -public class ItemsDictionaryItemTreeController : DictionaryItemTreeControllerBase +public class ItemsDictionaryTreeController : DictionaryTreeControllerBase { - public ItemsDictionaryItemTreeController(IEntityService entityService, ILocalizationService localizationService) + public ItemsDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) : base(entityService, localizationService) { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/RootDictionaryItemTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs similarity index 82% rename from src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/RootDictionaryItemTreeController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs index 18abf7a728..65981cb518 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DictionaryItem/Tree/RootDictionaryItemTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/Tree/RootDictionaryTreeController.cs @@ -6,11 +6,11 @@ using Umbraco.Cms.ManagementApi.Services.Paging; using Umbraco.Cms.ManagementApi.ViewModels.Pagination; using Umbraco.Cms.ManagementApi.ViewModels.Tree; -namespace Umbraco.Cms.ManagementApi.Controllers.DictionaryItem.Tree; +namespace Umbraco.Cms.ManagementApi.Controllers.Dictionary.Tree; -public class RootDictionaryItemTreeController : DictionaryItemTreeControllerBase +public class RootDictionaryTreeController : DictionaryTreeControllerBase { - public RootDictionaryItemTreeController(IEntityService entityService, ILocalizationService localizationService) + public RootDictionaryTreeController(IEntityService entityService, ILocalizationService localizationService) : base(entityService, localizationService) { } diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs index 747b6b3296..106c636fe1 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Document/RecycleBin/DocumentRecycleBinControllerBase.cs @@ -14,7 +14,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Document.RecycleBin; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Document}/recycle-bin")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.RecycleBin}/{Constants.UdiEntityType.Document}")] [RequireDocumentTreeRootAccess] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [OpenApiTag(nameof(Constants.UdiEntityType.Document))] diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/DocumentTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/DocumentTreeControllerBase.cs index a20237537d..b69af50c31 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/DocumentTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/DocumentTreeControllerBase.cs @@ -16,7 +16,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Document.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Document}/tree")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Document}")] [OpenApiTag(nameof(Constants.UdiEntityType.Document))] public abstract class DocumentTreeControllerBase : UserStartNodeTreeControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/ItemsDocumentTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/ItemsDocumentTreeController.cs index a18dfea069..a9dd8326d6 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/ItemsDocumentTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Document/Tree/ItemsDocumentTreeController.cs @@ -21,7 +21,7 @@ public class ItemsDocumentTreeController : DocumentTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys, Guid? dataTypeKey = null, string? culture = null) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs index c6247da3a9..1fe034b7b5 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/DocumentBlueprintTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.DocumentBlueprint.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.DocumentBlueprint}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.DocumentBlueprint))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DocumentBlueprint}")] +[OpenApiTag("Document Blueprint")] public class DocumentBlueprintTreeControllerBase : EntityTreeControllerBase { private readonly IContentTypeService _contentTypeService; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs index 6b7edb6fab..e077d7eb49 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentBlueprint/Tree/ItemsDocumentBlueprintTreeController.cs @@ -13,7 +13,7 @@ public class ItemsDocumentBlueprintTreeController : DocumentBlueprintTreeControl { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs index cc4c224ef5..a80d69e729 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/DocumentTypeTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.DocumentType.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.DocumentType}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.DocumentType))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.DocumentType}")] +[OpenApiTag("Document Type")] public class DocumentTypeTreeControllerBase : FolderTreeControllerBase { private readonly IContentTypeService _contentTypeService; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs index e19bf249c6..28da775a58 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/DocumentType/Tree/ItemsDocumentTypeTreeController.cs @@ -12,7 +12,7 @@ public class ItemsDocumentTypeTreeController : DocumentTypeTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs index 157e1099de..abd4c9c6bf 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Media/RecycleBin/MediaRecycleBinControllerBase.cs @@ -14,7 +14,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Media.RecycleBin; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Media}/recycle-bin")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.RecycleBin}/{Constants.UdiEntityType.Media}")] [RequireMediaTreeRootAccess] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [OpenApiTag(nameof(Constants.UdiEntityType.Media))] diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/ItemsMediaTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/ItemsMediaTreeController.cs index 2ebf1a559f..cc6074d49b 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/ItemsMediaTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/ItemsMediaTreeController.cs @@ -20,7 +20,7 @@ public class ItemsMediaTreeController : MediaTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys, Guid? dataTypeKey = null) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/MediaTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/MediaTreeControllerBase.cs index c03f05c71d..44fb4464c7 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/MediaTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Media/Tree/MediaTreeControllerBase.cs @@ -15,7 +15,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Media.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Media}/tree")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Media}")] [OpenApiTag(nameof(Constants.UdiEntityType.Media))] public class MediaTreeControllerBase : UserStartNodeTreeControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs index 363751fee7..309711cd7d 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/ItemsMediaTypeTreeController.cs @@ -12,7 +12,7 @@ public class ItemsMediaTypeTreeController : MediaTypeTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs index 5b06c46439..043434d0ab 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MediaType/Tree/MediaTypeTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.MediaType.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.MediaType}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.MediaType))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MediaType}")] +[OpenApiTag("Media Type")] public class MediaTypeTreeControllerBase : FolderTreeControllerBase { private readonly IMediaTypeService _mediaTypeService; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs index 94db46be4e..d3be627d30 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/ItemsMemberGroupTreeController.cs @@ -12,7 +12,7 @@ public class ItemsMemberGroupTreeController : MemberGroupTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs index b3ee033a25..6c4e5eb25a 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MemberGroup/Tree/MemberGroupTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.MemberGroup.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.MemberGroup}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.MemberGroup))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MemberGroup}")] +[OpenApiTag("Member Group")] public class MemberGroupTreeControllerBase : EntityTreeControllerBase { public MemberGroupTreeControllerBase(IEntityService entityService) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs index 249cdd5d67..e70ca8f0ee 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/ItemsMemberTypeTreeController.cs @@ -12,7 +12,7 @@ public class ItemsMemberTypeTreeController : MemberTypeTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs index 88183dfd58..f52980b4ff 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/MemberType/Tree/MemberTypeTreeControllerBase.cs @@ -12,8 +12,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.MemberType.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.MemberType}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.MemberType))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.MemberType}")] +[OpenApiTag("Member Type")] public class MemberTypeTreeControllerBase : EntityTreeControllerBase { public MemberTypeTreeControllerBase(IEntityService entityService) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/BuildModelsBuilderController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs similarity index 96% rename from src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/BuildModelsBuilderController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs index c219a5128e..7fcf5b5888 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/BuildModelsBuilderController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/BuildModelsBuilderController.cs @@ -8,7 +8,7 @@ using Umbraco.Cms.Infrastructure.ModelsBuilder; using Umbraco.Cms.Infrastructure.ModelsBuilder.Building; using Umbraco.Extensions; -namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilderDashboard; +namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilder; public class BuildModelsBuilderController : ModelsBuilderControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/GetModelsBuilderController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/GetModelsBuilderController.cs similarity index 89% rename from src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/GetModelsBuilderController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/GetModelsBuilderController.cs index aa993cd1f4..09e5fcc1ac 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/GetModelsBuilderController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/GetModelsBuilderController.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.ManagementApi.Factories; using Umbraco.Cms.ManagementApi.ViewModels.ModelsBuilderDashboard; -namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilderDashboard; +namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilder; public class GetModelsBuilderController : ModelsBuilderControllerBase { @@ -12,7 +12,7 @@ public class GetModelsBuilderController : ModelsBuilderControllerBase public GetModelsBuilderController(IModelsBuilderViewModelFactory modelsBuilderViewModelFactory) => _modelsBuilderViewModelFactory = modelsBuilderViewModelFactory; - [HttpGet] + [HttpGet("dashboard")] [ProducesResponseType(typeof(CreatedResult), StatusCodes.Status200OK)] [MapToApiVersion("1.0")] public async Task> GetDashboard() => await Task.FromResult(Ok(_modelsBuilderViewModelFactory.Create())); diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs similarity index 72% rename from src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs index 4871d3b9d6..6a09074c94 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/ModelsBuilderControllerBase.cs @@ -2,11 +2,11 @@ using NSwag.Annotations; using Umbraco.New.Cms.Web.Common.Routing; -namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilderDashboard; +namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilder; [ApiController] [VersionedApiBackOfficeRoute("models-builder")] -[OpenApiTag("ModelsBuilder")] +[OpenApiTag("Models Builder")] [ApiVersion("1.0")] public class ModelsBuilderControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/StatusModelsBuilderController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/StatusModelsBuilderController.cs similarity index 94% rename from src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/StatusModelsBuilderController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/StatusModelsBuilderController.cs index 9b2cb22e0a..1f130ffb5c 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/StatusModelsBuilderController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilder/StatusModelsBuilderController.cs @@ -5,7 +5,7 @@ using Umbraco.Cms.Infrastructure.ModelsBuilder; using Umbraco.Cms.ManagementApi.ViewModels.ModelsBuilderDashboard; using Umbraco.New.Cms.Core.Models; -namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilderDashboard; +namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilder; public class StatusModelsBuilderController : ModelsBuilderControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs index d6107a844a..5a1567028c 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/ItemsPartialViewTreeController.cs @@ -12,7 +12,7 @@ public class ItemsPartialViewTreeController : PartialViewTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "path")] string[] paths) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs index 95ad0eb6cf..d74afbda9d 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/PartialView/Tree/PartialViewTreeControllerBase.cs @@ -9,8 +9,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.PartialView.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.PartialView}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.PartialView))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.PartialView}")] +[OpenApiTag("Partial View")] public class PartialViewTreeControllerBase : FileSystemTreeControllerBase { public PartialViewTreeControllerBase(FileSystems fileSystems) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs index 78dcd539f4..3fe18847f6 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs @@ -7,7 +7,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.PublishedCache; [ApiVersion("1.0")] [ApiController] [VersionedApiBackOfficeRoute("published-cache")] -[OpenApiTag("PublishedCache")] +[OpenApiTag("Published Cache")] public class PublishedCacheControllerBase : ManagementApiControllerBase { } diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs index 4639fa7bea..8d1e88c806 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs @@ -22,7 +22,7 @@ public class ByChildRelationController : RelationControllerBase _relationViewModelFactory = relationViewModelFactory; } - [HttpGet("child-relations/{childId:int}")] + [HttpGet("child-relation/{childId:int}")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] public async Task> ByChild(int childId, int skip, int take, string? relationTypeAlias = "") diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs index 7e2054a594..ca3f6ff7de 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/ItemsRelationTypeTreeController.cs @@ -14,7 +14,7 @@ public class ItemsRelationTypeTreeController : RelationTypeTreeControllerBase : base(entityService) => _relationService = relationService; - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs index c90c124686..6f5f69e8bd 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/RelationType/Tree/RelationTypeTreeControllerBase.cs @@ -11,8 +11,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.RelationType.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.RelationType}/tree")] -[OpenApiTag(nameof(Constants.UdiEntityType.RelationType))] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.RelationType}")] +[OpenApiTag("Relation Type")] // NOTE: at the moment relation types aren't supported by EntityService, so we have little use of the // tree controller base. We'll keep it though, in the hope that we can mend EntityService. public class RelationTypeTreeControllerBase : EntityTreeControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ItemsScriptTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ItemsScriptTreeController.cs index 99cd6d990e..642fcb63be 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ItemsScriptTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ItemsScriptTreeController.cs @@ -12,7 +12,7 @@ public class ItemsScriptTreeController : ScriptTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "path")] string[] paths) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ScriptTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ScriptTreeControllerBase.cs index 4e204da4ee..d8266f8226 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ScriptTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Script/Tree/ScriptTreeControllerBase.cs @@ -9,7 +9,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Script.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Script}/tree")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Script}")] [OpenApiTag(nameof(Constants.UdiEntityType.Script))] public class ScriptTreeControllerBase : FileSystemTreeControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs index 205f92d94f..1b8bb4b8b8 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/ItemsStaticFileTreeController.cs @@ -12,7 +12,7 @@ public class ItemsStaticFileTreeController : StaticFileTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "path")] string[] paths) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs index ec50a54495..410559af56 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/StaticFile/Tree/StaticFileTreeControllerBase.cs @@ -9,8 +9,8 @@ namespace Umbraco.Cms.ManagementApi.Controllers.StaticFile.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute("static-file/tree")] -[OpenApiTag("StaticFile")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/static-file")] +[OpenApiTag("Static File")] public class StaticFileTreeControllerBase : FileSystemTreeControllerBase { private static readonly string[] _allowedRootFolders = { "App_Plugins", "wwwroot" }; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs index de2e779ba1..12b04a9c08 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/ItemsStylesheetTreeController.cs @@ -12,7 +12,7 @@ public class ItemsStylesheetTreeController : StylesheetTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "path")] string[] paths) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs index b529752293..6ffe4052de 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Stylesheet/Tree/StylesheetTreeControllerBase.cs @@ -9,7 +9,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Stylesheet.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Stylesheet}/tree")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Stylesheet}")] [OpenApiTag(nameof(Constants.UdiEntityType.Stylesheet))] public class StylesheetTreeControllerBase : FileSystemTreeControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/AllTelemetryController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/AllTelemetryController.cs new file mode 100644 index 0000000000..5520d20414 --- /dev/null +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/AllTelemetryController.cs @@ -0,0 +1,23 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Core.Models; +using Umbraco.Cms.ManagementApi.ViewModels.Pagination; +using Umbraco.Cms.ManagementApi.ViewModels.Telemetry; + +namespace Umbraco.Cms.ManagementApi.Controllers.Telemetry; + +public class AllTelemetryController : TelemetryControllerBase +{ + [HttpGet] + [MapToApiVersion("1.0")] + [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] + public async Task> GetAll(int skip, int take) + { + TelemetryLevel[] levels = Enum.GetValues(); + return await Task.FromResult(new PagedViewModel + { + Total = levels.Length, + Items = levels.Skip(skip).Take(take).Select(level => new TelemetryLevelViewModel { TelemetryLevel = level }), + }); + } +} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/GetTelemetryController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/GetTelemetryController.cs new file mode 100644 index 0000000000..007554389e --- /dev/null +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/GetTelemetryController.cs @@ -0,0 +1,18 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Umbraco.Cms.Core.Services; +using Umbraco.Cms.ManagementApi.ViewModels.Telemetry; + +namespace Umbraco.Cms.ManagementApi.Controllers.Telemetry; + +public class GetTelemetryController : TelemetryControllerBase +{ + private readonly IMetricsConsentService _metricsConsentService; + + public GetTelemetryController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; + + [HttpGet("level")] + [MapToApiVersion("1.0")] + [ProducesResponseType(typeof(TelemetryLevelViewModel), StatusCodes.Status200OK)] + public async Task Get() => await Task.FromResult(new TelemetryLevelViewModel { TelemetryLevel = _metricsConsentService.GetConsentLevel() }); +} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/SetAnalyticsController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/SetTelemetryController.cs similarity index 51% rename from src/Umbraco.Cms.ManagementApi/Controllers/Analytics/SetAnalyticsController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/SetTelemetryController.cs index cfdd1e8b4f..5c9002335c 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/SetAnalyticsController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/SetTelemetryController.cs @@ -1,36 +1,35 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Umbraco.Cms.Core.Services; -using Umbraco.Cms.ManagementApi.ViewModels.Analytics; -using Umbraco.Cms.ManagementApi.ViewModels.Server; +using Umbraco.Cms.ManagementApi.ViewModels.Telemetry; -namespace Umbraco.Cms.ManagementApi.Controllers.Analytics; +namespace Umbraco.Cms.ManagementApi.Controllers.Telemetry; -public class SetAnalyticsController : AnalyticsControllerBase +public class SetTelemetryController : TelemetryControllerBase { private readonly IMetricsConsentService _metricsConsentService; - public SetAnalyticsController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; + public SetTelemetryController(IMetricsConsentService metricsConsentService) => _metricsConsentService = metricsConsentService; - [HttpPost] + [HttpPost("level")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] - public async Task SetConsentLevel(AnalyticsLevelViewModel analyticsLevelViewModel) + public async Task SetConsentLevel(TelemetryLevelViewModel telemetryLevelViewModel) { - if (!Enum.IsDefined(analyticsLevelViewModel.AnalyticsLevel)) + if (!Enum.IsDefined(telemetryLevelViewModel.TelemetryLevel)) { var invalidModelProblem = new ProblemDetails { - Title = "Invalid AnalyticsLevel value", - Detail = "The provided value for AnalyticsLevel is not valid", + Title = "Invalid TelemetryLevel value", + Detail = "The provided value for TelemetryLevel is not valid", Status = StatusCodes.Status400BadRequest, Type = "Error", }; return BadRequest(invalidModelProblem); } - _metricsConsentService.SetConsentLevel(analyticsLevelViewModel.AnalyticsLevel); + _metricsConsentService.SetConsentLevel(telemetryLevelViewModel.TelemetryLevel); return await Task.FromResult(Ok()); } } diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/TelemetryControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/TelemetryControllerBase.cs new file mode 100644 index 0000000000..b95e35a7e8 --- /dev/null +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Telemetry/TelemetryControllerBase.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Mvc; +using NSwag.Annotations; +using Umbraco.New.Cms.Web.Common.Routing; + +namespace Umbraco.Cms.ManagementApi.Controllers.Telemetry; + +[ApiController] +[VersionedApiBackOfficeRoute("telemetry")] +[OpenApiTag("Telemetry")] +[ApiVersion("1.0")] +public abstract class TelemetryControllerBase : ManagementApiControllerBase +{ +} diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/ItemsTemplateTreeController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/ItemsTemplateTreeController.cs index fb4a29c621..877f740df7 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/ItemsTemplateTreeController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/ItemsTemplateTreeController.cs @@ -12,7 +12,7 @@ public class ItemsTemplateTreeController : TemplateTreeControllerBase { } - [HttpGet("items")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] public async Task>> Items([FromQuery(Name = "key")] Guid[] keys) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/TemplateTreeControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/TemplateTreeControllerBase.cs index be885f26be..1ca105c6aa 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/TemplateTreeControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Template/Tree/TemplateTreeControllerBase.cs @@ -12,7 +12,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Template.Tree; [ApiVersion("1.0")] [ApiController] -[VersionedApiBackOfficeRoute($"{Constants.UdiEntityType.Template}/tree")] +[VersionedApiBackOfficeRoute($"{Constants.Web.RoutePath.Tree}/{Constants.UdiEntityType.Template}")] [OpenApiTag(nameof(Constants.UdiEntityType.Template))] public class TemplateTreeControllerBase : EntityTreeControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/ForItemTrackedReferencesController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ByIdTrackedReferenceController.cs similarity index 89% rename from src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/ForItemTrackedReferencesController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ByIdTrackedReferenceController.cs index a415cf08bf..3c1998a7e4 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/ForItemTrackedReferencesController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ByIdTrackedReferenceController.cs @@ -7,14 +7,14 @@ using Umbraco.Cms.ManagementApi.ViewModels.Pagination; using Umbraco.Cms.ManagementApi.ViewModels.TrackedReferences; using Umbraco.New.Cms.Core.Models; -namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReferences; +namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReference; -public class ForItemTrackedReferencesController : TrackedReferencesControllerBase +public class ByIdTrackedReferenceController : TrackedReferenceControllerBase { private readonly ITrackedReferencesService _trackedReferencesService; private readonly IUmbracoMapper _umbracoMapper; - public ForItemTrackedReferencesController(ITrackedReferencesService trackedReferencesService, IUmbracoMapper umbracoMapper) + public ByIdTrackedReferenceController(ITrackedReferencesService trackedReferencesService, IUmbracoMapper umbracoMapper) { _trackedReferencesService = trackedReferencesService; _umbracoMapper = umbracoMapper; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/DescendantsTrackedReferencesController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs similarity index 89% rename from src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/DescendantsTrackedReferencesController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs index ecac832a84..20f119d173 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/DescendantsTrackedReferencesController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/DescendantsTrackedReferenceController.cs @@ -7,14 +7,14 @@ using Umbraco.Cms.ManagementApi.ViewModels.Pagination; using Umbraco.Cms.ManagementApi.ViewModels.TrackedReferences; using Umbraco.New.Cms.Core.Models; -namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReferences; +namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReference; -public class DescendantsTrackedReferencesController : TrackedReferencesControllerBase +public class DescendantsTrackedReferenceController : TrackedReferenceControllerBase { private readonly ITrackedReferencesService _trackedReferencesSkipTakeService; private readonly IUmbracoMapper _umbracoMapper; - public DescendantsTrackedReferencesController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) + public DescendantsTrackedReferenceController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) { _trackedReferencesSkipTakeService = trackedReferencesSkipTakeService; _umbracoMapper = umbracoMapper; diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/MultipleTrackedReferencesController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ItemsTrackedReferenceController.cs similarity index 87% rename from src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/MultipleTrackedReferencesController.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ItemsTrackedReferenceController.cs index 041d208915..39ad9c2560 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/MultipleTrackedReferencesController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/ItemsTrackedReferenceController.cs @@ -7,14 +7,14 @@ using Umbraco.Cms.ManagementApi.ViewModels.Pagination; using Umbraco.Cms.ManagementApi.ViewModels.TrackedReferences; using Umbraco.New.Cms.Core.Models; -namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReferences; +namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReference; -public class MultipleTrackedReferencesController : TrackedReferencesControllerBase +public class ItemsTrackedReferenceController : TrackedReferenceControllerBase { private readonly ITrackedReferencesService _trackedReferencesSkipTakeService; private readonly IUmbracoMapper _umbracoMapper; - public MultipleTrackedReferencesController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) + public ItemsTrackedReferenceController(ITrackedReferencesService trackedReferencesSkipTakeService, IUmbracoMapper umbracoMapper) { _trackedReferencesSkipTakeService = trackedReferencesSkipTakeService; _umbracoMapper = umbracoMapper; @@ -27,7 +27,7 @@ public class MultipleTrackedReferencesController : TrackedReferencesControllerBa /// Used when bulk deleting content/media and bulk unpublishing content (delete and unpublish on List view). /// This is basically finding children of relations. /// - [HttpGet("multiple")] + [HttpGet("item")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] public async Task>> GetPagedReferencedItems([FromQuery]int[] ids, long skip, long take, bool? filterMustBeIsDependency) diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/TrackedReferencesControllerBase.cs similarity index 54% rename from src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs rename to src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/TrackedReferencesControllerBase.cs index be40c80bf1..f473976c80 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReference/TrackedReferencesControllerBase.cs @@ -2,12 +2,12 @@ using NSwag.Annotations; using Umbraco.New.Cms.Web.Common.Routing; -namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReferences; +namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReference; [ApiController] -[VersionedApiBackOfficeRoute("tracked-references")] -[OpenApiTag("TrackedReferences")] +[VersionedApiBackOfficeRoute("tracked-reference")] +[OpenApiTag("Tracked Reference")] [ApiVersion("1.0")] -public abstract class TrackedReferencesControllerBase : ManagementApiControllerBase +public abstract class TrackedReferenceControllerBase : ManagementApiControllerBase { } diff --git a/src/Umbraco.Cms.ManagementApi/OpenApi.json b/src/Umbraco.Cms.ManagementApi/OpenApi.json index b821f26e24..e352c4d7da 100644 --- a/src/Umbraco.Cms.ManagementApi/OpenApi.json +++ b/src/Umbraco.Cms.ManagementApi/OpenApi.json @@ -75,75 +75,14 @@ } } }, - "/umbraco/management/api/v1/tracked-references/descendants/{parentId}": { + "/umbraco/management/api/v1/tracked-reference/{id}": { "get": { "tags": [ - "TrackedReferences" - ], - "summary": "Gets a page list of the child nodes of the current item used in any kind of relation.", - "description": "Used when deleting and unpublishing a single item to check if this item has any descending items that are in any\nkind of relation.\nThis is basically finding the descending items which are children in relations.", - "operationId": "DescendantsTrackedReferences_Descendants", - "parameters": [ - { - "name": "parentId", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - }, - "x-position": 1 - }, - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - }, - "x-position": 2 - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int64" - }, - "x-position": 3 - }, - { - "name": "filterMustBeIsDependency", - "in": "query", - "schema": { - "type": "boolean", - "nullable": true - }, - "x-position": 4 - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedViewModelOfRelationItemViewModel" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/tracked-references/{id}": { - "get": { - "tags": [ - "TrackedReferences" + "Tracked Reference" ], "summary": "Gets a page list of tracked references for the current item, so you can see where an item is being used.", "description": "Used by info tabs on content, media etc. and for the delete and unpublish of single items.\nThis is basically finding parents of relations.", - "operationId": "ForItemTrackedReferences_Get", + "operationId": "ByIdTrackedReference_Get", "parameters": [ { "name": "id", @@ -197,14 +136,75 @@ } } }, - "/umbraco/management/api/v1/tracked-references/multiple": { + "/umbraco/management/api/v1/tracked-reference/descendants/{parentId}": { "get": { "tags": [ - "TrackedReferences" + "Tracked Reference" + ], + "summary": "Gets a page list of the child nodes of the current item used in any kind of relation.", + "description": "Used when deleting and unpublishing a single item to check if this item has any descending items that are in any\nkind of relation.\nThis is basically finding the descending items which are children in relations.", + "operationId": "DescendantsTrackedReference_Descendants", + "parameters": [ + { + "name": "parentId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + }, + "x-position": 1 + }, + { + "name": "skip", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + }, + "x-position": 2 + }, + { + "name": "take", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + }, + "x-position": 3 + }, + { + "name": "filterMustBeIsDependency", + "in": "query", + "schema": { + "type": "boolean", + "nullable": true + }, + "x-position": 4 + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedViewModelOfRelationItemViewModel" + } + } + } + } + } + } + }, + "/umbraco/management/api/v1/tracked-reference/item": { + "get": { + "tags": [ + "Tracked Reference" ], "summary": "Gets a page list of the items used in any kind of relation from selected integer ids.", "description": "Used when bulk deleting content/media and bulk unpublishing content (delete and unpublish on List view).\nThis is basically finding children of relations.", - "operationId": "MultipleTrackedReferences_GetPagedReferencedItems", + "operationId": "ItemsTrackedReference_GetPagedReferencedItems", "parameters": [ { "name": "ids", @@ -263,7 +263,7 @@ } } }, - "/umbraco/management/api/v1/template/tree/children": { + "/umbraco/management/api/v1/tree/template/children": { "get": { "tags": [ "Template" @@ -314,7 +314,7 @@ } } }, - "/umbraco/management/api/v1/template/tree/items": { + "/umbraco/management/api/v1/tree/template/item": { "get": { "tags": [ "Template" @@ -355,7 +355,7 @@ } } }, - "/umbraco/management/api/v1/template/tree/root": { + "/umbraco/management/api/v1/tree/template/root": { "get": { "tags": [ "Template" @@ -397,7 +397,100 @@ } } }, - "/umbraco/management/api/v1/stylesheet/tree/children": { + "/umbraco/management/api/v1/telemetry": { + "get": { + "tags": [ + "Telemetry" + ], + "operationId": "AllTelemetry_GetAll", + "parameters": [ + { + "name": "skip", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + }, + "x-position": 1 + }, + { + "name": "take", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + }, + "x-position": 2 + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagedViewModelOfTelemetryLevelViewModel" + } + } + } + } + } + } + }, + "/umbraco/management/api/v1/telemetry/level": { + "get": { + "tags": [ + "Telemetry" + ], + "operationId": "GetTelemetry_Get", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryLevelViewModel" + } + } + } + } + } + }, + "post": { + "tags": [ + "Telemetry" + ], + "operationId": "SetTelemetry_SetConsentLevel", + "requestBody": { + "x-name": "telemetryLevelViewModel", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TelemetryLevelViewModel" + } + } + }, + "required": true, + "x-position": 1 + }, + "responses": { + "400": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "200": { + "description": "" + } + } + } + }, + "/umbraco/management/api/v1/tree/stylesheet/children": { "get": { "tags": [ "Stylesheet" @@ -448,7 +541,7 @@ } } }, - "/umbraco/management/api/v1/stylesheet/tree/items": { + "/umbraco/management/api/v1/tree/stylesheet/item": { "get": { "tags": [ "Stylesheet" @@ -488,7 +581,7 @@ } } }, - "/umbraco/management/api/v1/stylesheet/tree/root": { + "/umbraco/management/api/v1/tree/stylesheet/root": { "get": { "tags": [ "Stylesheet" @@ -530,10 +623,10 @@ } } }, - "/umbraco/management/api/v1/static-file/tree/children": { + "/umbraco/management/api/v1/tree/static-file/children": { "get": { "tags": [ - "StaticFile" + "Static File" ], "operationId": "ChildrenStaticFileTree_Children", "parameters": [ @@ -581,10 +674,10 @@ } } }, - "/umbraco/management/api/v1/static-file/tree/items": { + "/umbraco/management/api/v1/tree/static-file/item": { "get": { "tags": [ - "StaticFile" + "Static File" ], "operationId": "ItemsStaticFileTree_Items", "parameters": [ @@ -621,10 +714,10 @@ } } }, - "/umbraco/management/api/v1/static-file/tree/root": { + "/umbraco/management/api/v1/tree/static-file/root": { "get": { "tags": [ - "StaticFile" + "Static File" ], "operationId": "RootStaticFileTree_Root", "parameters": [ @@ -962,7 +1055,7 @@ } } }, - "/umbraco/management/api/v1/script/tree/children": { + "/umbraco/management/api/v1/tree/script/children": { "get": { "tags": [ "Script" @@ -1013,7 +1106,7 @@ } } }, - "/umbraco/management/api/v1/script/tree/items": { + "/umbraco/management/api/v1/tree/script/item": { "get": { "tags": [ "Script" @@ -1053,7 +1146,7 @@ } } }, - "/umbraco/management/api/v1/script/tree/root": { + "/umbraco/management/api/v1/tree/script/root": { "get": { "tags": [ "Script" @@ -1095,7 +1188,7 @@ } } }, - "/umbraco/management/api/v1/relation/child-relations/{childId}": { + "/umbraco/management/api/v1/relation/child-relation/{childId}": { "get": { "tags": [ "Relation" @@ -1198,10 +1291,10 @@ } } }, - "/umbraco/management/api/v1/relation-type/tree/items": { + "/umbraco/management/api/v1/tree/relation-type/item": { "get": { "tags": [ - "RelationType" + "Relation Type" ], "operationId": "ItemsRelationTypeTree_Items", "parameters": [ @@ -1239,10 +1332,10 @@ } } }, - "/umbraco/management/api/v1/relation-type/tree/root": { + "/umbraco/management/api/v1/tree/relation-type/root": { "get": { "tags": [ - "RelationType" + "Relation Type" ], "operationId": "RootRelationTypeTree_Root", "parameters": [ @@ -1284,7 +1377,7 @@ "/umbraco/management/api/v1/published-cache/collect": { "post": { "tags": [ - "PublishedCache" + "Published Cache" ], "operationId": "CollectPublishedCache_Collect", "responses": { @@ -1297,7 +1390,7 @@ "/umbraco/management/api/v1/published-cache/rebuild": { "post": { "tags": [ - "PublishedCache" + "Published Cache" ], "operationId": "RebuildPublishedCache_Collect", "responses": { @@ -1310,7 +1403,7 @@ "/umbraco/management/api/v1/published-cache/reload": { "post": { "tags": [ - "PublishedCache" + "Published Cache" ], "operationId": "ReloadPublishedCache_Reload", "responses": { @@ -1323,7 +1416,7 @@ "/umbraco/management/api/v1/published-cache/status": { "get": { "tags": [ - "PublishedCache" + "Published Cache" ], "operationId": "StatusPublishedCache_Status", "responses": { @@ -1360,10 +1453,10 @@ } } }, - "/umbraco/management/api/v1/partial-view/tree/children": { + "/umbraco/management/api/v1/tree/partial-view/children": { "get": { "tags": [ - "PartialView" + "Partial View" ], "operationId": "ChildrenPartialViewTree_Children", "parameters": [ @@ -1411,10 +1504,10 @@ } } }, - "/umbraco/management/api/v1/partial-view/tree/items": { + "/umbraco/management/api/v1/tree/partial-view/item": { "get": { "tags": [ - "PartialView" + "Partial View" ], "operationId": "ItemsPartialViewTree_Items", "parameters": [ @@ -1451,10 +1544,10 @@ } } }, - "/umbraco/management/api/v1/partial-view/tree/root": { + "/umbraco/management/api/v1/tree/partial-view/root": { "get": { "tags": [ - "PartialView" + "Partial View" ], "operationId": "RootPartialViewTree_Root", "parameters": [ @@ -1496,7 +1589,7 @@ "/umbraco/management/api/v1/models-builder/build": { "post": { "tags": [ - "ModelsBuilder" + "Models Builder" ], "operationId": "BuildModelsBuilder_BuildModels", "responses": { @@ -1524,10 +1617,10 @@ } } }, - "/umbraco/management/api/v1/models-builder": { + "/umbraco/management/api/v1/models-builder/dashboard": { "get": { "tags": [ - "ModelsBuilder" + "Models Builder" ], "operationId": "GetModelsBuilder_GetDashboard", "responses": { @@ -1548,7 +1641,7 @@ "/umbraco/management/api/v1/models-builder/status": { "get": { "tags": [ - "ModelsBuilder" + "Models Builder" ], "operationId": "StatusModelsBuilder_GetModelsOutOfDateStatus", "responses": { @@ -1565,10 +1658,10 @@ } } }, - "/umbraco/management/api/v1/member-type/tree/items": { + "/umbraco/management/api/v1/tree/member-type/item": { "get": { "tags": [ - "MemberType" + "Member Type" ], "operationId": "ItemsMemberTypeTree_Items", "parameters": [ @@ -1606,10 +1699,10 @@ } } }, - "/umbraco/management/api/v1/member-type/tree/root": { + "/umbraco/management/api/v1/tree/member-type/root": { "get": { "tags": [ - "MemberType" + "Member Type" ], "operationId": "RootMemberTypeTree_Root", "parameters": [ @@ -1648,10 +1741,10 @@ } } }, - "/umbraco/management/api/v1/member-group/tree/items": { + "/umbraco/management/api/v1/tree/member-group/item": { "get": { "tags": [ - "MemberGroup" + "Member Group" ], "operationId": "ItemsMemberGroupTree_Items", "parameters": [ @@ -1689,10 +1782,10 @@ } } }, - "/umbraco/management/api/v1/member-group/tree/root": { + "/umbraco/management/api/v1/tree/member-group/root": { "get": { "tags": [ - "MemberGroup" + "Member Group" ], "operationId": "RootMemberGroupTree_Root", "parameters": [ @@ -1731,7 +1824,7 @@ } } }, - "/umbraco/management/api/v1/media/tree/children": { + "/umbraco/management/api/v1/tree/media/children": { "get": { "tags": [ "Media" @@ -1792,7 +1885,7 @@ } } }, - "/umbraco/management/api/v1/media/tree/items": { + "/umbraco/management/api/v1/tree/media/item": { "get": { "tags": [ "Media" @@ -1843,7 +1936,7 @@ } } }, - "/umbraco/management/api/v1/media/tree/root": { + "/umbraco/management/api/v1/tree/media/root": { "get": { "tags": [ "Media" @@ -1895,7 +1988,7 @@ } } }, - "/umbraco/management/api/v1/media/recycle-bin/children": { + "/umbraco/management/api/v1/recycle-bin/media/children": { "get": { "tags": [ "Media" @@ -1956,7 +2049,7 @@ } } }, - "/umbraco/management/api/v1/media/recycle-bin/root": { + "/umbraco/management/api/v1/recycle-bin/media/root": { "get": { "tags": [ "Media" @@ -2008,10 +2101,10 @@ } } }, - "/umbraco/management/api/v1/media-type/tree/children": { + "/umbraco/management/api/v1/tree/media-type/children": { "get": { "tags": [ - "MediaType" + "Media Type" ], "operationId": "ChildrenMediaTypeTree_Children", "parameters": [ @@ -2068,10 +2161,10 @@ } } }, - "/umbraco/management/api/v1/media-type/tree/items": { + "/umbraco/management/api/v1/tree/media-type/item": { "get": { "tags": [ - "MediaType" + "Media Type" ], "operationId": "ItemsMediaTypeTree_Items", "parameters": [ @@ -2109,10 +2202,10 @@ } } }, - "/umbraco/management/api/v1/media-type/tree/root": { + "/umbraco/management/api/v1/tree/media-type/root": { "get": { "tags": [ - "MediaType" + "Media Type" ], "operationId": "RootMediaTypeTree_Root", "parameters": [ @@ -2569,7 +2662,7 @@ } } }, - "/umbraco/management/api/v1/document/tree/children": { + "/umbraco/management/api/v1/tree/document/children": { "get": { "tags": [ "Document" @@ -2639,7 +2732,7 @@ } } }, - "/umbraco/management/api/v1/document/tree/items": { + "/umbraco/management/api/v1/tree/document/item": { "get": { "tags": [ "Document" @@ -2699,7 +2792,7 @@ } } }, - "/umbraco/management/api/v1/document/tree/root": { + "/umbraco/management/api/v1/tree/document/root": { "get": { "tags": [ "Document" @@ -2760,7 +2853,7 @@ } } }, - "/umbraco/management/api/v1/document/recycle-bin/children": { + "/umbraco/management/api/v1/recycle-bin/document/children": { "get": { "tags": [ "Document" @@ -2821,7 +2914,7 @@ } } }, - "/umbraco/management/api/v1/document/recycle-bin/root": { + "/umbraco/management/api/v1/recycle-bin/document/root": { "get": { "tags": [ "Document" @@ -2873,10 +2966,10 @@ } } }, - "/umbraco/management/api/v1/document-type/tree/children": { + "/umbraco/management/api/v1/tree/document-type/children": { "get": { "tags": [ - "DocumentType" + "Document Type" ], "operationId": "ChildrenDocumentTypeTree_Children", "parameters": [ @@ -2933,10 +3026,10 @@ } } }, - "/umbraco/management/api/v1/document-type/tree/items": { + "/umbraco/management/api/v1/tree/document-type/item": { "get": { "tags": [ - "DocumentType" + "Document Type" ], "operationId": "ItemsDocumentTypeTree_Items", "parameters": [ @@ -2974,10 +3067,10 @@ } } }, - "/umbraco/management/api/v1/document-type/tree/root": { + "/umbraco/management/api/v1/tree/document-type/root": { "get": { "tags": [ - "DocumentType" + "Document Type" ], "operationId": "RootDocumentTypeTree_Root", "parameters": [ @@ -3025,10 +3118,10 @@ } } }, - "/umbraco/management/api/v1/document-blueprint/tree/items": { + "/umbraco/management/api/v1/tree/document-blueprint/item": { "get": { "tags": [ - "DocumentBlueprint" + "Document Blueprint" ], "operationId": "ItemsDocumentBlueprintTree_Items", "parameters": [ @@ -3066,10 +3159,10 @@ } } }, - "/umbraco/management/api/v1/document-blueprint/tree/root": { + "/umbraco/management/api/v1/tree/document-blueprint/root": { "get": { "tags": [ - "DocumentBlueprint" + "Document Blueprint" ], "operationId": "RootDocumentBlueprintTree_Root", "parameters": [ @@ -3486,12 +3579,12 @@ } } }, - "/umbraco/management/api/v1/dictionary-item/tree/children": { + "/umbraco/management/api/v1/tree/dictionary/children": { "get": { "tags": [ - "DictionaryItem" + "Dictionary" ], - "operationId": "ChildrenDictionaryItemTree_Children", + "operationId": "ChildrenDictionaryTree_Children", "parameters": [ { "name": "parentKey", @@ -3537,12 +3630,12 @@ } } }, - "/umbraco/management/api/v1/dictionary-item/tree/items": { + "/umbraco/management/api/v1/tree/dictionary/item": { "get": { "tags": [ - "DictionaryItem" + "Dictionary" ], - "operationId": "ItemsDictionaryItemTree_Items", + "operationId": "ItemsDictionaryTree_Items", "parameters": [ { "name": "key", @@ -3578,12 +3671,12 @@ } } }, - "/umbraco/management/api/v1/dictionary-item/tree/root": { + "/umbraco/management/api/v1/tree/dictionary/root": { "get": { "tags": [ - "DictionaryItem" + "Dictionary" ], - "operationId": "RootDictionaryItemTree_Root", + "operationId": "RootDictionaryTree_Root", "parameters": [ { "name": "skip", @@ -3620,10 +3713,10 @@ } } }, - "/umbraco/management/api/v1/data-type/tree/children": { + "/umbraco/management/api/v1/tree/data-type/children": { "get": { "tags": [ - "DataType" + "Data Type" ], "operationId": "ChildrenDataTypeTree_Children", "parameters": [ @@ -3680,10 +3773,10 @@ } } }, - "/umbraco/management/api/v1/data-type/tree/items": { + "/umbraco/management/api/v1/tree/data-type/item": { "get": { "tags": [ - "DataType" + "Data Type" ], "operationId": "ItemsDataTypeTree_Items", "parameters": [ @@ -3721,10 +3814,10 @@ } } }, - "/umbraco/management/api/v1/data-type/tree/root": { + "/umbraco/management/api/v1/tree/data-type/root": { "get": { "tags": [ - "DataType" + "Data Type" ], "operationId": "RootDataTypeTree_Root", "parameters": [ @@ -3812,99 +3905,6 @@ } } } - }, - "/umbraco/management/api/v1/analytics/all": { - "get": { - "tags": [ - "Analytics" - ], - "operationId": "AllAnalytics_GetAll", - "parameters": [ - { - "name": "skip", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - }, - "x-position": 1 - }, - { - "name": "take", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - }, - "x-position": 2 - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedViewModelOfTelemetryLevel" - } - } - } - } - } - } - }, - "/umbraco/management/api/v1/analytics": { - "get": { - "tags": [ - "Analytics" - ], - "operationId": "GetAnalytics_Get", - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnalyticsLevelViewModel" - } - } - } - } - } - }, - "post": { - "tags": [ - "Analytics" - ], - "operationId": "SetAnalytics_SetConsentLevel", - "requestBody": { - "x-name": "analyticsLevelViewModel", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AnalyticsLevelViewModel" - } - } - }, - "required": true, - "x-position": 1 - }, - "responses": { - "400": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } - }, - "200": { - "description": "" - } - } - } } }, "components": { @@ -4074,6 +4074,45 @@ } } }, + "PagedViewModelOfTelemetryLevelViewModel": { + "type": "object", + "additionalProperties": false, + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TelemetryLevelViewModel" + } + } + } + }, + "TelemetryLevelViewModel": { + "type": "object", + "additionalProperties": false, + "properties": { + "telemetryLevel": { + "$ref": "#/components/schemas/TelemetryLevel" + } + } + }, + "TelemetryLevel": { + "type": "string", + "description": "", + "x-enumNames": [ + "Minimal", + "Basic", + "Detailed" + ], + "enum": [ + "Minimal", + "Basic", + "Detailed" + ] + }, "PagedViewModelOfFileSystemTreeItemViewModel": { "type": "object", "additionalProperties": false, @@ -4583,20 +4622,6 @@ } } }, - "TelemetryLevel": { - "type": "string", - "description": "", - "x-enumNames": [ - "Minimal", - "Basic", - "Detailed" - ], - "enum": [ - "Minimal", - "Basic", - "Detailed" - ] - }, "DatabaseSettingsViewModel": { "type": "object", "additionalProperties": false, @@ -5220,72 +5245,27 @@ "type": "string" } } - }, - "PagedViewModelOfTelemetryLevel": { - "type": "object", - "additionalProperties": false, - "properties": { - "total": { - "type": "integer", - "format": "int64" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TelemetryLevel2" - } - } - } - }, - "TelemetryLevel2": { - "type": "integer", - "description": "", - "x-enumNames": [ - "Minimal", - "Basic", - "Detailed" - ], - "enum": [ - 0, - 1, - 2 - ] - }, - "AnalyticsLevelViewModel": { - "type": "object", - "additionalProperties": false, - "properties": { - "analyticsLevel": { - "$ref": "#/components/schemas/TelemetryLevel" - } - } } } }, "tags": [ - { - "name": "Analytics" - }, { "name": "Culture" }, { - "name": "DataType" + "name": "Data Type" }, { "name": "Dictionary" }, - { - "name": "DictionaryItem" - }, { "name": "Document" }, { - "name": "DocumentBlueprint" + "name": "Document Blueprint" }, { - "name": "DocumentType" + "name": "Document Type" }, { "name": "Help" @@ -5300,31 +5280,31 @@ "name": "Media" }, { - "name": "MediaType" + "name": "Media Type" }, { - "name": "MemberGroup" + "name": "Member Group" }, { - "name": "MemberType" + "name": "Member Type" }, { - "name": "ModelsBuilder" + "name": "Models Builder" }, { - "name": "PartialView" + "name": "Partial View" }, { "name": "Profiling" }, { - "name": "PublishedCache" + "name": "Published Cache" }, { "name": "Relation" }, { - "name": "RelationType" + "name": "Relation Type" }, { "name": "Script" @@ -5336,16 +5316,19 @@ "name": "Server" }, { - "name": "StaticFile" + "name": "Static File" }, { "name": "Stylesheet" }, + { + "name": "Telemetry" + }, { "name": "Template" }, { - "name": "TrackedReferences" + "name": "Tracked Reference" }, { "name": "Upgrade" diff --git a/src/Umbraco.Cms.ManagementApi/ViewModels/Analytics/AnalyticsLevelViewModel.cs b/src/Umbraco.Cms.ManagementApi/ViewModels/Analytics/AnalyticsLevelViewModel.cs deleted file mode 100644 index 73d442992e..0000000000 --- a/src/Umbraco.Cms.ManagementApi/ViewModels/Analytics/AnalyticsLevelViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Text.Json.Serialization; -using Umbraco.Cms.Core.Models; - -namespace Umbraco.Cms.ManagementApi.ViewModels.Analytics; - -public class AnalyticsLevelViewModel -{ - [JsonConverter(typeof(JsonStringEnumConverter))] - public TelemetryLevel AnalyticsLevel { get; set; } -} diff --git a/src/Umbraco.Cms.ManagementApi/ViewModels/Telemetry/TelemetryLevelViewModel.cs b/src/Umbraco.Cms.ManagementApi/ViewModels/Telemetry/TelemetryLevelViewModel.cs new file mode 100644 index 0000000000..d387be92e9 --- /dev/null +++ b/src/Umbraco.Cms.ManagementApi/ViewModels/Telemetry/TelemetryLevelViewModel.cs @@ -0,0 +1,10 @@ +using System.Text.Json.Serialization; +using Umbraco.Cms.Core.Models; + +namespace Umbraco.Cms.ManagementApi.ViewModels.Telemetry; + +public class TelemetryLevelViewModel +{ + [JsonConverter(typeof(JsonStringEnumConverter))] + public TelemetryLevel TelemetryLevel { get; set; } +} diff --git a/src/Umbraco.Core/Constants-Web.cs b/src/Umbraco.Core/Constants-Web.cs index bbeae780d8..6eb184fb40 100644 --- a/src/Umbraco.Core/Constants-Web.cs +++ b/src/Umbraco.Core/Constants-Web.cs @@ -63,6 +63,12 @@ public static partial class Constants public const string AreaToken = "area"; } + public static class RoutePath + { + public const string Tree = "tree"; + public const string RecycleBin = "recycle-bin"; + } + public static class AttributeRouting { public const string BackOfficeToken = "umbracoBackOffice"; diff --git a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs index 9178234e74..a869f63bd3 100644 --- a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs +++ b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs @@ -1,15 +1,11 @@ -using System; -using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using NUnit.Framework; using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.DependencyInjection; using Umbraco.Cms.Core.Hosting; using Umbraco.Cms.Tests.Integration.TestServerTest; -using Umbraco.Extensions; namespace Umbraco.Cms.Tests.Integration.NewBackoffice;