using MagicCarpetContracts.AdapterContracts; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace MagicCarpetWebApi.Controllers; [Authorize] [Route("api/[controller]/[action]")] [ApiController] public class ReportController(IReportAdapter adapter) : ControllerBase { private IReportAdapter _adapter = adapter; [HttpGet] [Consumes("application/json")] public async Task GetHistories(CancellationToken ct) { return (await _adapter.GetDataToursHistoryAsync(ct)).GetResponse(Request, Response); } [HttpGet] [Consumes("application/octet-stream")] public async Task LoadHistories(CancellationToken cancellationToken) { return (await _adapter.CreateDocumentToursHistoryAsync(cancellationToken)).GetResponse(Request, Response); } [HttpGet] [Consumes("application/json")] public async Task GetSales(DateTime fromDate, DateTime toDate, CancellationToken cancellationToken) { return (await _adapter.GetDataBySalesByPeriodAsync(fromDate, toDate, cancellationToken)).GetResponse(Request, Response); } [HttpGet] [Consumes("application/octet-stream")] public async Task LoadSales(DateTime fromDate, DateTime toDate, CancellationToken cancellationToken) { return (await _adapter.CreateDocumentSalesByPeriodAsync(fromDate, toDate, cancellationToken)).GetResponse(Request, Response); } [HttpGet] [Consumes("application/json")] public async Task GetSalary(DateTime fromDate, DateTime toDate, CancellationToken cancellationToken) { return (await _adapter.GetDataSalaryByPeriodAsync(fromDate, toDate, cancellationToken)).GetResponse(Request, Response); } [HttpGet] [Consumes("application/octet-stream")] public async Task LoadSalary(DateTime fromDate, DateTime toDate, CancellationToken cancellationToken) { return (await _adapter.CreateDocumentSalaryByPeriodAsync(fromDate, toDate, cancellationToken)).GetResponse(Request, Response); } }