95d460c80a
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/19
30 lines
1.5 KiB
C#
30 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Tnsu.ApprovalRoute.Api.Auth;
|
|
using Tnsu.ApprovalRoute.Api.Common;
|
|
using Tnsu.ApprovalRoute.Application.Reminders;
|
|
|
|
namespace Tnsu.ApprovalRoute.Api.Controllers;
|
|
|
|
/// <summary>
|
|
/// Один вид напоминаний по выбору вызывающей стороны (см. ReminderFeed) — без
|
|
/// параметра feed отдаёт просроченные шаги согласования и исполнения, как и до
|
|
/// появления ProbationEnding.
|
|
///
|
|
/// Политика — та же AnyAuth, что и у остальных контроллеров: эндпоинт вызывает
|
|
/// Power Automate по расписанию (токен приложения), но и из админки его удобно
|
|
/// открыть под пользователем, чтобы посмотреть, что сервис реально отдаёт.
|
|
/// </summary>
|
|
[ApiController]
|
|
[Authorize(Policy = AuthPolicies.Any)]
|
|
[Route("api/reminders")]
|
|
[Produces("application/json")]
|
|
public sealed class RemindersController(ReminderService service) : ControllerBase
|
|
{
|
|
[HttpGet]
|
|
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<ReminderDto>>), StatusCodes.Status200OK)]
|
|
public async Task<IActionResult> List(
|
|
[FromQuery] ReminderFeed feed = ReminderFeed.ApprovalOverdue, CancellationToken ct = default) =>
|
|
(await service.GetRemindersAsync(feed, ct)).ToActionResult();
|
|
}
|