разные правки по беку
This commit is contained in:
@@ -1,35 +1,45 @@
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Tnsu.ApprovalRoute.Api.Common;
|
||||
using Tnsu.ApprovalRoute.Application.RequestTypeLists;
|
||||
using Tnsu.ApprovalRoute.Application.ListPartitioning;
|
||||
|
||||
namespace Tnsu.ApprovalRoute.Api.Controllers;
|
||||
|
||||
/// <summary>
|
||||
/// Нумерованная серия SharePoint-списков по типу заявок: куда писать сейчас и вся
|
||||
/// серия для админки.
|
||||
/// Нумерованная серия партиций SharePoint-списка по типу заявок: куда писать сейчас
|
||||
/// и вся серия для админки/портала.
|
||||
/// </summary>
|
||||
[ApiController]
|
||||
[Authorize]
|
||||
[Route("api/request-types/{requestTypeId:int}/lists")]
|
||||
[Route("api/request-types")]
|
||||
[Produces("application/json")]
|
||||
public sealed class RequestTypeListsController(RequestTypeListService service) : ControllerBase
|
||||
public sealed class RequestTypeListsController(ListPartitionService service) : ControllerBase
|
||||
{
|
||||
/// <summary>Вся серия списков типа заявок (архив + текущий), от первого к последнему.</summary>
|
||||
[HttpGet]
|
||||
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<RequestTypeListDto>>), StatusCodes.Status200OK)]
|
||||
/// <summary>
|
||||
/// Серии партиций ВСЕХ типов заявок разом — для портала: чтобы искать по
|
||||
/// заявкам сразу во всех партициях (архив + текущая) любого типа, не нужно
|
||||
/// запрашивать серию по каждому типу отдельно.
|
||||
/// </summary>
|
||||
[HttpGet("lists")]
|
||||
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<RequestTypeListSeriesDto>>), StatusCodes.Status200OK)]
|
||||
public async Task<IActionResult> ListAll(CancellationToken ct) =>
|
||||
(await service.ListAllAsync(ct)).ToActionResult();
|
||||
|
||||
/// <summary>Вся серия партиций одного типа заявок (архив + текущая), от первой к последней.</summary>
|
||||
[HttpGet("{requestTypeId:int}/lists")]
|
||||
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<RequestListPartitionDto>>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> List(int requestTypeId, CancellationToken ct) =>
|
||||
(await service.ListAsync(requestTypeId, ct)).ToActionResult();
|
||||
|
||||
/// <summary>
|
||||
/// Список, в который нужно писать новые заявки этого типа.
|
||||
/// Партиция, в которую нужно писать новые заявки этого типа.
|
||||
///
|
||||
/// Не чистый GET: если список добрал порог элементов, запрос ставит в очередь
|
||||
/// фоновую задачу создания следующего (см. RequestTypeListService.GetCurrentAsync).
|
||||
/// Не чистый GET: если партиция добрала порог элементов, запрос ставит в очередь
|
||||
/// фоновую задачу создания следующей (см. ListPartitionService.GetCurrentAsync).
|
||||
/// </summary>
|
||||
[HttpGet("current")]
|
||||
[ProducesResponseType(typeof(ApiResponse<CurrentRequestTypeListDto>), StatusCodes.Status200OK)]
|
||||
[HttpGet("{requestTypeId:int}/lists/current")]
|
||||
[ProducesResponseType(typeof(ApiResponse<CurrentListPartitionDto>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(typeof(ApiError), StatusCodes.Status400BadRequest)]
|
||||
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
||||
public async Task<IActionResult> Current(int requestTypeId, CancellationToken ct) =>
|
||||
|
||||
Reference in New Issue
Block a user