Files
Umbraco-CMS/src/Umbraco.Cms.Api.Management/Controllers/MemberGroup/AllMemberGroupController.cs
Nikolaj Geisle 1e043cbcfb V14: Member group controller (#15669)
* Add models & mapping

* Add controller

* Add create async to service

* Add auth policy

* Implement delete

* Rename response model

* Implement updateAsync

* Refactor update to use own model

* Implement all async counterparts for IMemberService

* Add tests

* Implement update member group mapping

* Dont fail if updating the current user group

* Return not found if not found

* Add missing OperationResults to MemberGroupOperationStatusResult

* Add 404 to response type

* Update openapi

* Update OpenApi

* Update OpenApi.json
2024-02-29 09:16:27 +01:00

39 lines
1.4 KiB
C#

using Asp.Versioning;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
using Umbraco.Cms.Api.Management.ViewModels.MemberGroup;
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Services;
namespace Umbraco.Cms.Api.Management.Controllers.MemberGroup;
[ApiVersion("1.0")]
public class AllMemberGroupController : MemberGroupControllerBase
{
private readonly IMemberGroupService _memberGroupService;
private readonly IUmbracoMapper _mapper;
public AllMemberGroupController(IMemberGroupService memberGroupService, IUmbracoMapper mapper)
{
_memberGroupService = memberGroupService;
_mapper = mapper;
}
[HttpGet]
[MapToApiVersion("1.0")]
[ProducesResponseType(typeof(PagedViewModel<MemberGroupResponseModel>), StatusCodes.Status200OK)]
public async Task<ActionResult<PagedViewModel<MemberGroupResponseModel>>> All(int skip = 0, int take = 100)
{
IMemberGroup[] memberGroups = (await _memberGroupService.GetAllAsync()).ToArray();
var viewModel = new PagedViewModel<MemberGroupResponseModel>
{
Total = memberGroups.Length,
Items = _mapper.MapEnumerable<IMemberGroup, MemberGroupResponseModel>(memberGroups.Skip(skip).Take(take)),
};
return await Task.FromResult(Ok(viewModel));
}
}