Webhook paged results (#15802)

* Add controller to fetch paged results of webhooks

* Return OK directly

* Fix total

* Update all languages
This commit is contained in:
Bjarne Fyrstenborg
2024-03-11 09:56:32 +01:00
committed by GitHub
parent ea31ddea6d
commit ae541f5636
2 changed files with 42 additions and 2 deletions

View File

@@ -26,13 +26,14 @@ public class AllLanguageController : LanguageControllerBase
[ProducesResponseType(typeof(PagedViewModel<LanguageResponseModel>), StatusCodes.Status200OK)]
public async Task<ActionResult<PagedViewModel<LanguageResponseModel>>> All(int skip = 0, int take = 100)
{
ILanguage[] allLanguages = (await _languageService.GetAllAsync()).ToArray();
IEnumerable<ILanguage> result = await _languageService.GetAllAsync();
ILanguage[] allLanguages = result.ToArray();
var viewModel = new PagedViewModel<LanguageResponseModel>
{
Total = allLanguages.Length,
Items = _umbracoMapper.MapEnumerable<ILanguage, LanguageResponseModel>(allLanguages.Skip(skip).Take(take))
};
return await Task.FromResult(Ok(viewModel));
return Ok(viewModel);
}
}

View File

@@ -0,0 +1,39 @@
using Asp.Versioning;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
using Umbraco.Cms.Api.Management.ViewModels.Webhook;
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Services;
namespace Umbraco.Cms.Api.Management.Controllers.Webhook;
[ApiVersion("1.0")]
public class AllWebhookController : WebhookControllerBase
{
private readonly IWebhookService _webhookService;
private readonly IUmbracoMapper _umbracoMapper;
public AllWebhookController(IWebhookService webhookService, IUmbracoMapper umbracoMapper)
{
_webhookService = webhookService;
_umbracoMapper = umbracoMapper;
}
[HttpGet]
[MapToApiVersion("1.0")]
[ProducesResponseType(typeof(PagedViewModel<WebhookResponseModel>), StatusCodes.Status200OK)]
public async Task<ActionResult<PagedViewModel<WebhookResponseModel>>> All(int skip = 0, int take = 100)
{
PagedModel<IWebhook> result = await _webhookService.GetAllAsync(skip, take);
IWebhook[] webhooks = result.Items.ToArray();
var viewModel = new PagedViewModel<WebhookResponseModel>
{
Total = result.Total,
Items = _umbracoMapper.MapEnumerable<IWebhook, WebhookResponseModel>(webhooks)
};
return Ok(viewModel);
}
}