using AsbCloudApp.Data; using AsbCloudApp.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; namespace AsbCloudWebApi.Controllers { [Route("api/[controller]")] [ApiController] [Authorize] public class RequerstTrackerController : ControllerBase { private readonly IRequerstTrackerService service; public RequerstTrackerController(IRequerstTrackerService service) { this.service = service; } /// /// Получить последние `take` запросов к серверу /// /// от 1 до 1000 /// [HttpGet] public IActionResult GetAll(int take = 512) { var result = service.GetAll(take); return Ok(result); } /// /// Получить последние `take` быстрых запросов к серверу /// /// от 1 до 1000 /// [HttpGet("fast")] public IActionResult GetFast(int take = 512) { var result = service.GetFast(take); return Ok(result); } /// /// Получить последние `take` медленных запросов к серверу /// /// от 1 до 1000 /// [HttpGet("slow")] public IActionResult GetSlow(int take = 512) { var result = service.GetSlow(take); return Ok(result); } /// /// Получить последние `take` ошибок при выполнении запросов /// /// от 1 до 1000 /// [HttpGet("error")] public IActionResult GetError(int take = 512) { var result = service.GetError(take); return Ok(result); } /// /// Получить последних пользователей обращавшихся к серверу. Уникальность пользователя проверяется по логину и Ip. /// /// от 1 до 1000 /// [HttpGet("users")] [ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)] public IActionResult GetUsersStat(int take = 512) { var result = service.GetUsersStat(take); return Ok(result); } } }