using BankContracts.AdapterContracts; using BankContracts.BindingModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace BankWebApi.Controllers; [Authorize] [Route("api/[controller]/[action]")] [ApiController] [Produces("application/json")] public class PeriodController(IPeriodAdapter adapter) : ControllerBase { private readonly IPeriodAdapter _adapter = adapter; /// /// получение всех записей сроков /// /// список сроков [HttpGet] public IActionResult GetAllRecords() { return _adapter.GetList().GetResponse(Request, Response); } /// /// получние записи о сроке по данным /// /// уникальный идентификатор или другое поле /// запись срока [HttpGet("{data}")] public IActionResult GetRecord(string data) { return _adapter.GetElement(data).GetResponse(Request, Response); } /// /// получение записей сроков по уникальному идентификатору кладовщика /// /// уникальный идентификатор кладовщика /// список сроков [HttpGet("{data}")] public IActionResult GetRecordByStorekeeper(string data) { return _adapter.GetListByStorekeeper(data).GetResponse(Request, Response); } /// /// получение записей сроков по дате начала /// /// дата начала /// список сроков [HttpGet("{data}")] public IActionResult GetRecordByStartTime(DateTime data) { return _adapter.GetListByStartTime(data).GetResponse(Request, Response); } /// /// получение записей сроков по дате конца /// /// дата конца /// список сроков [HttpGet("{data}")] public IActionResult GetRecordByEndTime(DateTime data) { return _adapter.GetListByEndTime(data).GetResponse(Request, Response); } /// /// создание записи срока /// /// модель от пользователя /// [HttpPost] public IActionResult Register([FromBody] PeriodBindingModel model) { return _adapter.RegisterPeriod(model).GetResponse(Request, Response); } /// /// изменение записи срока /// /// новая модель /// [HttpPut] public IActionResult ChangeInfo([FromBody] PeriodBindingModel model) { return _adapter.ChangePeriodInfo(model).GetResponse(Request, Response); } }