using AvtoTAZContratcs.AdapterContracts; using AvtoTAZContratcs.BindingModels; using AvtoTAZContratcs.DataModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace AvtoTazWebApi.Controllers; [Authorize] [Route("api/[controller]/[action]")] [ApiController] [Authorize] public class ShipmentController(IShipmentAdapter adapter) : ControllerBase { private readonly IShipmentAdapter _adapter = adapter; [HttpGet] public IActionResult GetRecords(DateTime fromDate, DateTime toDate) { return _adapter.GetList(fromDate, toDate).GetResponse(Request, Response); } [HttpGet] public IActionResult GetWorkerRecords(string id, DateTime fromDate, DateTime toDate) { return _adapter.GetWorkerList(id, fromDate, toDate).GetResponse(Request, Response); } [HttpGet] public IActionResult GetBuyerRecords(string id, DateTime fromDate, DateTime toDate) { return _adapter.GetDealerList(id, fromDate, toDate).GetResponse(Request, Response); } [HttpGet] public IActionResult GetProductRecords(string id, DateTime fromDate, DateTime toDate) { return _adapter.GetCarAssemblyList(id, fromDate, toDate).GetResponse(Request, Response); } [HttpGet("{data}")] public IActionResult GetRecord(string data) { return _adapter.GetElement(data).GetResponse(Request, Response); } [HttpPost] public IActionResult Sale([FromBody] ShipmentBindingModel model) { return _adapter.MakeSale(model).GetResponse(Request, Response); } [HttpDelete("{id}")] public IActionResult Cancel(string id) { return _adapter.CancelShipment(id).GetResponse(Request, Response); } }