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; /// /// Methods used for viewing the audit trail /// [Route("api/[controller]")] [ApiController] public class AuditController : ESuiteControllerBase { private readonly IAuditLog _auditLog; /// /// Constructor for the Audit Controller. /// /// public AuditController(IAuditLog auditLog) { _auditLog = auditLog; } /// /// Returns the audit entries for the system /// /// Returns all audit log entries [Route("log")] [HttpGet] [AccessKey(SecurityAccess.ViewAuditLog)] [ProducesResponseType(StatusCodes.Status200OK)] public async Task 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); } }