* Fixing a few nullable reference types for log viewer (#13634) (cherry picked from commitb4ca2a6636) * Adding LogControllerBase * Migrating GetLogLevels() * Migrating GetNumberOfErrors() * Migrating GetLogLevelCounts() * Migrating GetCanViewLogs() * Migrating GetMessageTemplates() * Migrating GetLogs() * Migrating GetSavedSearches() * Migrating PostSavedSearch() * Migrating DeleteSavedSearch() * Adding LoggerViewModel * Adding LogViewModelMapDefinition * Update OpenApi.json * Cleanup * V12: Change nullability for the log searches (#13647) * Changing nullability * Obsolete DeleteSavedSearch since the query param is not used * Fix a bit more referenced * Add default implementation for the new overload of DeleteSavedSearch (cherry picked from commit5e06f5a8a0) * Updates based on nullability fix * Adding GetSavedSearchByName * Implementing ByName endpoint * Refactoring Delete endpoint based on GetSavedSearchByName * Refactoring Create endpoint to return the item's location * Suppress new GetSavedSearchByName in ILogViewer interfaces * Update OpenApi.json * Adding github initials to FIXME * Renaming * Moving files to Core proj * Adding GetLogs with skip and take * Introducing ILogViewerService * Supressing xml for ILogViewer.GetLogsAsPagedModel() * Changing to our own Enum representation of LogLevel * Creating ILogEntry needed for GetPagedLogs() * Refactoring controllers to use the new logViewerService * Removing base class methods since those have been moved to the new service * Removing ErrorCountLogViewerController since the result can be calculated from another endpoint * Refactoring the MapDefinition because of the new return types from the service * Update OpenApi.json * Obsoleting old methods in favor of the ILogViewerService * Cleanup * Fixing enum representation as strings for Swagger * Adding documentation * Changing enum representation to string in OpenApi.OpenApi.json * Fix FIXME (use CreatedAtAction) * Removing JsonStringEnumConverter as there should be another way to fix enum representation for Swagger * Removing MappingBuilderExtensions and making specific LogViewerBuilderExtensions * Changes to the .sln file * Take only the result in the response * Register the LogViewer extensions * Update OpenApi.json * Fix the supressions.xml * Add inheritdoc * Remove GetSavedSearchByName as it isn't necessary to introduce it anymore * Obsolete interfaces * Rename ViewPermission controller to ValidateLogFileSize * Make rest of the methods async * Route name change * Remove methods obsoletion * Introduce the "attempt" pattern * Refactoring of ILogViewerService * Refactoring controllers * Another OpenApi.json update * Adding fixme * Re-add new client project Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets a paginated list of all saved log searches.
|
|
/// </summary>
|
|
/// <param name="skip">The amount of items to skip.</param>
|
|
/// <param name="take">The amount of items to take.</param>
|
|
/// <returns>The paged result of the saved log searches.</returns>
|
|
[HttpGet]
|
|
[MapToApiVersion("1.0")]
|
|
[ProducesResponseType(typeof(PagedViewModel<SavedLogSearchViewModel>), StatusCodes.Status200OK)]
|
|
public async Task<ActionResult<PagedViewModel<SavedLogSearchViewModel>>> AllSavedSearches(int skip = 0, int take = 100)
|
|
{
|
|
IReadOnlyList<ILogViewerQuery> savedLogQueries = await _logViewerService.GetSavedLogQueriesAsync();
|
|
|
|
return Ok(_umbracoMapper.Map<PagedViewModel<SavedLogSearchViewModel>>(savedLogQueries.Skip(skip).Take(take)));
|
|
}
|
|
}
|