- Añade GET /api/denuncias/{id}/gestiona-fields para exponer los campos diarios requeridos por la integración con Gestiona.
- Devuelve un DTO cerrado con fecha, canal, resumen, datos de hechos, protección, sexo y preferencias de notificación.
- Adapta el login contra GlobalLeaks al nuevo flujo DPoP exigido desde la versión 5.0.94.
- Genera proof DPoP con clave EC P-256 efímera y lo envía en la cabecera DPoP junto a X-Token.
- Mejora el mensaje de error cuando GlobalLeaks rechaza el proof DPoP.
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using System.Globalization;
|
|
using ApiDenuncias.Services;
|
|
using GestionaDenuncias.Shared.Models;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace ApiDenuncias.Controllers;
|
|
|
|
[ApiController]
|
|
[Authorize]
|
|
[Route("api/configuration")]
|
|
public sealed class ConfigurationController : ControllerBase
|
|
{
|
|
private readonly AppConfigurationService _configurationService;
|
|
|
|
public ConfigurationController(AppConfigurationService configurationService)
|
|
{
|
|
_configurationService = configurationService;
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<ActionResult<AppConfigurationDto>> Get(CancellationToken cancellationToken)
|
|
{
|
|
return Ok(await _configurationService.GetAsync(cancellationToken));
|
|
}
|
|
|
|
[HttpPut("external-update-cutoff")]
|
|
[Authorize(Policy = "ConfigurationAdministrators")]
|
|
public async Task<ActionResult<AppConfigurationDto>> SetExternalUpdateCutoff(
|
|
UpdateExternalUpdateCutoffRequest request,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
DateOnly? date = null;
|
|
if (!string.IsNullOrWhiteSpace(request.Date))
|
|
{
|
|
if (!DateOnly.TryParseExact(
|
|
request.Date.Trim(),
|
|
["yyyy-MM-dd", "dd/MM/yyyy"],
|
|
CultureInfo.InvariantCulture,
|
|
DateTimeStyles.None,
|
|
out var parsed))
|
|
{
|
|
return BadRequest(new ApiError("Debes indicar una fecha valida con formato YYYY-MM-DD o DD/MM/AAAA."));
|
|
}
|
|
|
|
date = parsed;
|
|
}
|
|
|
|
return Ok(await _configurationService.SetExternalUpdateCutoffDateAsync(date, cancellationToken));
|
|
}
|
|
}
|