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);
}
}