Backend/e-suite.API/eSuite.API/Controllers/AuditController.cs
2026-01-20 21:50:10 +00:00

41 lines
1.3 KiB
C#

using e_suite.API.Common;
using e_suite.Utilities.Pagination;
using eSuite.API.security;
using eSuite.API.Utilities;
using eSuite.Core.Security;
using Microsoft.AspNetCore.Mvc;
namespace eSuite.API.Controllers;
/// <summary>
/// Methods used for viewing the audit trail
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class AuditController : ESuiteControllerBase
{
private readonly IAuditLog _auditLog;
/// <summary>
/// Constructor for the Audit Controller.
/// </summary>
/// <param name="auditLog"></param>
public AuditController(IAuditLog auditLog)
{
_auditLog = auditLog;
}
/// <summary>
/// Returns the audit entries for the system
/// </summary>
/// <remarks>Returns all audit log entries</remarks>
[Route("log")]
[HttpGet]
[AccessKey(SecurityAccess.ViewAuditLog)]
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task<IActionResult> Get([FromQuery] Paging paging, [FromQuery] string? logEntry, [FromQuery] bool primaryOnly, CancellationToken cancellationToken = default!)
{
var result = await _auditLog.GetAuditLogEntries(paging, logEntry, primaryOnly, cancellationToken);
return Ok(result);
}
}