Make "create folder" return HTTP 201 Created for file system folders (#15459)
* Make "create folder" return 201 and add expected return types to "create" and "delete" for all file system folder endpoints * Update OpenApi.json
This commit is contained in:
@@ -2,21 +2,33 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Umbraco.Cms.Api.Management.ViewModels.Folder;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Mapping;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Services.OperationStatus;
|
||||
|
||||
namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Folder;
|
||||
|
||||
[ApiVersion("1.0")]
|
||||
public class CreateStylesheetFolderController : StylesheetFolderControllerBase
|
||||
{
|
||||
public CreateStylesheetFolderController(IUmbracoMapper mapper, IStylesheetFolderService stylesheetFolderService) : base(mapper, stylesheetFolderService)
|
||||
public CreateStylesheetFolderController(IUmbracoMapper mapper, IStylesheetFolderService stylesheetFolderService)
|
||||
: base(mapper, stylesheetFolderService)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[MapToApiVersion("1.0")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
public Task<IActionResult> Create(CreatePathFolderRequestModel model) => CreateAsync(model);
|
||||
[ProducesResponseType(StatusCodes.Status201Created)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> Create(CreatePathFolderRequestModel model)
|
||||
{
|
||||
Attempt<PathContainer?, StylesheetFolderOperationStatus> result = await CreateAsync(model);
|
||||
return result.Success
|
||||
? CreatedAtAction<ByPathStylesheetFolderController>(controller => nameof(controller.ByPath), new { path = result.Result!.Path })
|
||||
: OperationStatusResult(result.Status);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,15 @@ namespace Umbraco.Cms.Api.Management.Controllers.Stylesheet.Folder;
|
||||
[ApiVersion("1.0")]
|
||||
public class DeleteStylesheetFolderController : StylesheetFolderControllerBase
|
||||
{
|
||||
public DeleteStylesheetFolderController(IUmbracoMapper mapper, IStylesheetFolderService stylesheetFolderService) : base(mapper, stylesheetFolderService)
|
||||
public DeleteStylesheetFolderController(IUmbracoMapper mapper, IStylesheetFolderService stylesheetFolderService)
|
||||
: base(mapper, stylesheetFolderService)
|
||||
{
|
||||
}
|
||||
|
||||
[HttpDelete]
|
||||
[MapToApiVersion("1.0")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status404NotFound)]
|
||||
public Task<IActionResult> Delete(string path) => DeleteAsync(path);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user