using AutoMapper; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using PARR.API.Contracts.V1; using PARR.API.Contracts.V1.Responses; using PARR.API.Contracts.V1.Responses.Base; using PARR.API.Controllers.V1.Base; using PARR.Core.Services.TaskServices.Interfaces; using PARR.Domain.Common.Roles; using PARR.Domain.Enums; namespace PARR.API.Controllers.V1 { /// /// Контроллер по управлению Task (задания, очереди) /// [Authorize(Roles = ParrRoles.Administrator.Role)] public class TaskController : BaseApiController { private readonly ITaskManagementService taskManagementService; private readonly IMapper mapper; public TaskController( ITaskManagementService taskManagementService, IMapper mapper ) { this.taskManagementService = taskManagementService; this.mapper = mapper; } /// /// Получить список активных задач (задания, очереди) /// /// [HttpGet(ApiRoutes.Tasks.GetActiveTasks)] public async Task GetActiveTasks([FromQuery] TaskTypeEnum? typeCode) { var activeTasks = await taskManagementService.GetActiveTasksAsync(typeCode); if (activeTasks.Count == 0) return NoContent(); var response = mapper.Map>(activeTasks); return Ok(new Response>(response, true)); } } }