using AsbCloudApp.Data; using AsbCloudApp.Exceptions; using AsbCloudApp.Requests; using AsbCloudApp.Services; using AsbCloudDb.Model; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace AsbCloudWebApi.Controllers; /// /// Аналитика по удержанию в клиньях /// [Route("api/slipsStat")] [ApiController] [Authorize] public class SlipsStatController : ControllerBase { private readonly ISlipsStatService slipsAnalyticsService; public SlipsStatController(ISlipsStatService slipsAnalyticsService) { this.slipsAnalyticsService = slipsAnalyticsService; } /// /// Получить аналитику по удержанию в клиньях (по бурильщикам) /// /// Параметры запроса /// Токен отмены задачи /// Список бурильщиков [HttpGet] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public async Task GetAllAsync( [FromQuery] OperationStatRequest request, CancellationToken token) { var idUser = User.GetUserId(); if (!idUser.HasValue) throw new ForbidException("Не удается вас опознать"); var data = await slipsAnalyticsService.GetAllAsync(request, token).ConfigureAwait(false); return Ok(data); } }