V14 Bugfix, fixed some of the document controllers (#15449)
* Updated naming to route correctly * Added a check for null * Added another status code for the PublicAccess * Added a check for null * Updated naming to match route * Added attempt pattern * added a ProblemDetailsBuilder for the EntryNotFound --------- Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
This commit is contained in:
@@ -162,6 +162,10 @@ public class ContentControllerBase : ManagementApiControllerBase
|
||||
.WithTitle("Ambiguous Rule")
|
||||
.WithDetail("The specified rule is ambiguous, because both member groups and member names were given.")
|
||||
.Build()),
|
||||
PublicAccessOperationStatus.EntryNotFound => BadRequest(new ProblemDetailsBuilder()
|
||||
.WithTitle("Entry not found")
|
||||
.WithDetail("The specified entry was not found.")
|
||||
.Build()),
|
||||
_ => StatusCode(StatusCodes.Status500InternalServerError, new ProblemDetailsBuilder()
|
||||
.WithTitle("Unknown content operation status.")
|
||||
.Build()),
|
||||
|
||||
@@ -3,8 +3,10 @@ using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Umbraco.Cms.Api.Management.Security.Authorization.Content;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Actions;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Services.OperationStatus;
|
||||
using Umbraco.Cms.Web.Common.Authorization;
|
||||
using Umbraco.Extensions;
|
||||
|
||||
@@ -38,8 +40,8 @@ public class DeletePublicAccessDocumentController : DocumentControllerBase
|
||||
return Forbidden();
|
||||
}
|
||||
|
||||
await _publicAccessService.DeleteAsync(id);
|
||||
Attempt<PublicAccessOperationStatus> attempt = await _publicAccessService.DeleteAsync(id);
|
||||
|
||||
return Ok();
|
||||
return attempt.Success ? Ok() : PublicAccessOperationStatusResult(attempt.Result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ public class DomainsController : DocumentControllerBase
|
||||
|
||||
[MapToApiVersion("1.0")]
|
||||
[HttpGet("{id:guid}/domains")]
|
||||
[ProducesResponseType(typeof(DomainsResponseModel), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> DomainsAsync(Guid id)
|
||||
[ProducesResponseType(typeof(DomainsResponseModel), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> Domains(Guid id)
|
||||
{
|
||||
IDomain[] assignedDomains = (await _domainService.GetAssignedDomainsAsync(id, true))
|
||||
.OrderBy(d => d.SortOrder)
|
||||
|
||||
@@ -55,8 +55,13 @@ public class GetPublicAccessDocumentController : DocumentControllerBase
|
||||
return PublicAccessOperationStatusResult(accessAttempt.Status);
|
||||
}
|
||||
|
||||
if (accessAttempt.Result is null)
|
||||
{
|
||||
return Ok();
|
||||
}
|
||||
|
||||
Attempt<PublicAccessResponseModel?, PublicAccessOperationStatus> responseModelAttempt =
|
||||
_publicAccessPresentationFactory.CreatePublicAccessResponseModel(accessAttempt.Result!);
|
||||
_publicAccessPresentationFactory.CreatePublicAccessResponseModel(accessAttempt.Result);
|
||||
|
||||
if (responseModelAttempt.Success is false)
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@ public class UpdateDomainsController : DocumentControllerBase
|
||||
|
||||
[MapToApiVersion("1.0")]
|
||||
[HttpPut("{id:guid}/domains")]
|
||||
public async Task<IActionResult> UpdateDomainsAsync(Guid id, UpdateDomainsRequestModel updateModel)
|
||||
public async Task<IActionResult> Update(Guid id, UpdateDomainsRequestModel updateModel)
|
||||
{
|
||||
DomainsUpdateModel domainsUpdateModel = _umbracoMapper.Map<DomainsUpdateModel>(updateModel)!;
|
||||
|
||||
|
||||
@@ -9,4 +9,5 @@ public enum PublicAccessOperationStatus
|
||||
NoAllowedEntities,
|
||||
AmbiguousRule,
|
||||
CancelledByNotification,
|
||||
EntryNotFound,
|
||||
}
|
||||
|
||||
@@ -392,6 +392,11 @@ internal class PublicAccessService : RepositoryService, IPublicAccessService
|
||||
return Attempt.Fail(attempt.Status);
|
||||
}
|
||||
|
||||
if (attempt.Result is null)
|
||||
{
|
||||
return Attempt.Fail(PublicAccessOperationStatus.EntryNotFound);
|
||||
}
|
||||
|
||||
EventMessages evtMsgs = EventMessagesFactory.Get();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user