All checks were successful
Optimized Build and Deploy / remote-build-and-deploy (push) Successful in 5m17s
73 lines
2.5 KiB
C#
73 lines
2.5 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using GestionIntegral.Api.Dtos.Anomalia;
|
|
using GestionIntegral.Api.Services.Anomalia;
|
|
|
|
namespace GestionIntegral.Api.Controllers.Anomalia
|
|
{
|
|
[Route("api/alertas")]
|
|
[ApiController]
|
|
[Authorize]
|
|
public class AlertasController : ControllerBase
|
|
{
|
|
private readonly IAlertaService _alertaService;
|
|
|
|
public AlertasController(IAlertaService alertaService)
|
|
{
|
|
_alertaService = alertaService;
|
|
}
|
|
|
|
// GET: api/alertas
|
|
[HttpGet]
|
|
[ProducesResponseType(typeof(IEnumerable<AlertaGenericaDto>), StatusCodes.Status200OK)]
|
|
public async Task<IActionResult> GetAlertasNoLeidas()
|
|
{
|
|
var alertas = await _alertaService.ObtenerAlertasNoLeidasAsync();
|
|
return Ok(alertas);
|
|
}
|
|
|
|
// POST: api/alertas/{idAlerta}/marcar-leida
|
|
[HttpPost("{idAlerta:int}/marcar-leida")]
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
[ProducesResponseType(StatusCodes.Status404NotFound)]
|
|
public async Task<IActionResult> MarcarComoLeida(int idAlerta)
|
|
{
|
|
var (exito, error) = await _alertaService.MarcarComoLeidaAsync(idAlerta);
|
|
if (!exito)
|
|
{
|
|
return NotFound(new { message = error });
|
|
}
|
|
return NoContent();
|
|
}
|
|
|
|
// POST: api/alertas/marcar-grupo-leido
|
|
[HttpPost("marcar-grupo-leido")]
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
[ProducesResponseType(StatusCodes.Status400BadRequest)]
|
|
public async Task<IActionResult> MarcarGrupoLeido([FromBody] MarcarGrupoLeidoRequestDto request)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
{
|
|
return BadRequest(ModelState);
|
|
}
|
|
var (exito, error) = await _alertaService.MarcarGrupoComoLeidoAsync(request.TipoAlerta, request.IdEntidad);
|
|
if (!exito)
|
|
{
|
|
return BadRequest(new { message = error });
|
|
}
|
|
return NoContent();
|
|
}
|
|
}
|
|
|
|
// DTO para el cuerpo del request de marcar grupo
|
|
public class MarcarGrupoLeidoRequestDto
|
|
{
|
|
[System.ComponentModel.DataAnnotations.Required]
|
|
public string TipoAlerta { get; set; } = string.Empty;
|
|
|
|
[System.ComponentModel.DataAnnotations.Required]
|
|
public int IdEntidad { get; set; }
|
|
}
|
|
} |