602554ac64
Tests / test (push) Successful in 5m45s
Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz> Reviewed-on: http://git.tnsu.kz/gorbenko.pavel/tnsu-approval-route/pulls/2 Co-authored-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz> Co-committed-by: gorbenko.pavel <gorbenko.pavel@tnsu.kz>
62 lines
3.3 KiB
C#
62 lines
3.3 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Tnsu.ApprovalRoute.Api.Common;
|
|
using Tnsu.ApprovalRoute.Application.TemplateRoutes;
|
|
|
|
namespace Tnsu.ApprovalRoute.Api.Controllers;
|
|
|
|
[ApiController]
|
|
[Authorize]
|
|
[Route("api/template-routes")]
|
|
[Produces("application/json")]
|
|
public sealed class TemplateRoutesController(TemplateRouteService service) : ControllerBase
|
|
{
|
|
[HttpGet("resolve")]
|
|
[ProducesResponseType(typeof(ApiResponse<ResolveTemplateRouteResultDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status400BadRequest)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
public async Task<IActionResult> Resolve([FromQuery] ResolveTemplateRouteRequest request, CancellationToken ct) =>
|
|
(await service.ResolveAsync(request, ct)).ToActionResult();
|
|
|
|
[HttpGet]
|
|
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<TemplateRouteDto>>), StatusCodes.Status200OK)]
|
|
public async Task<IActionResult> List([FromQuery] int? requestTypeId, CancellationToken ct) =>
|
|
(await service.ListAsync(requestTypeId, ct)).ToActionResult();
|
|
|
|
[HttpGet("{id:int}")]
|
|
[ProducesResponseType(typeof(ApiResponse<TemplateRouteDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
public async Task<IActionResult> Get(int id, CancellationToken ct) =>
|
|
(await service.GetAsync(id, ct)).ToActionResult();
|
|
|
|
[HttpPost]
|
|
[ProducesResponseType(typeof(ApiResponse<TemplateRouteDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status400BadRequest)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status409Conflict)]
|
|
public async Task<IActionResult> Create(CreateTemplateRouteRequest body, CancellationToken ct) =>
|
|
(await service.CreateAsync(body, ct)).ToActionResult();
|
|
|
|
[HttpPut("{id:int}")]
|
|
[ProducesResponseType(typeof(ApiResponse<TemplateRouteDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status400BadRequest)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status409Conflict)]
|
|
public async Task<IActionResult> Update(int id, UpdateTemplateRouteRequest body, CancellationToken ct) =>
|
|
(await service.UpdateAsync(id, body, ct)).ToActionResult();
|
|
|
|
[HttpPatch("{id:int}")]
|
|
[ProducesResponseType(typeof(ApiResponse<TemplateRouteDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status400BadRequest)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status409Conflict)]
|
|
public async Task<IActionResult> Patch(int id, PatchTemplateRouteRequest body, CancellationToken ct) =>
|
|
(await service.PatchAsync(id, body, ct)).ToActionResult();
|
|
|
|
[HttpDelete("{id:int}")]
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
[ProducesResponseType(typeof(ApiError), StatusCodes.Status404NotFound)]
|
|
public async Task<IActionResult> Delete(int id, CancellationToken ct) =>
|
|
(await service.DeleteAsync(id, ct)).ToActionResult();
|
|
}
|