using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Umbraco.Cms.Api.Common.ViewModels.Pagination;
using Umbraco.Cms.Api.Management.ViewModels.LogViewer;
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Services;
namespace Umbraco.Cms.Api.Management.Controllers.LogViewer.SavedSearch;
public class AllSavedSearchLogViewerController : SavedSearchLogViewerControllerBase
{
private readonly ILogViewerService _logViewerService;
private readonly IUmbracoMapper _umbracoMapper;
public AllSavedSearchLogViewerController(ILogViewerService logViewerService, IUmbracoMapper umbracoMapper)
{
_logViewerService = logViewerService;
_umbracoMapper = umbracoMapper;
}
///
/// Gets a paginated list of all saved log searches.
///
/// The amount of items to skip.
/// The amount of items to take.
/// The paged result of the saved log searches.
[HttpGet]
[MapToApiVersion("1.0")]
[ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)]
public async Task>> AllSavedSearches(int skip = 0, int take = 100)
{
IReadOnlyList savedLogQueries = await _logViewerService.GetSavedLogQueriesAsync();
return Ok(_umbracoMapper.Map>(savedLogQueries.Skip(skip).Take(take)));
}
}