using BankContracts.AdapterContracts; using BankContracts.BindingModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace BankWebApi.Controllers; [Authorize] [Route("api/[controller]/[action]")] [ApiController] [Produces("application/json")] public class ReplenishmentsController(IReplenishmentAdapter adapter) : ControllerBase { private readonly IReplenishmentAdapter _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 GetRecordByClerk(string data) { return _adapter.GetListByClerk(data).GetResponse(Request, Response); } /// /// получение записей пополнений по уникальному идентификатору вклада /// /// уникальный идентификатор вклада /// список пополнений [HttpGet("{data}")] public IActionResult GetRecordByDeposit(string data) { return _adapter.GetListByDeposit(data).GetResponse(Request, Response); } /// /// получение записей пополнений по дате /// /// /// /// список пополнений [HttpGet("{data}")] public IActionResult GetRecordByDate(DateTime fromDate, DateTime toDate) { return _adapter.GetListByDate(fromDate, toDate).GetResponse(Request, Response); } /// /// создание записи пополнения /// /// модель от пользователя /// [HttpPost] public IActionResult Register([FromBody] ReplenishmentBindingModel model) { return _adapter.RegisterReplenishment(model).GetResponse(Request, Response); } /// /// изменение записи пополнения /// /// новая модель /// [HttpPut] public IActionResult ChangeInfo([FromBody] ReplenishmentBindingModel model) { return _adapter.ChangeReplenishmentInfo(model).GetResponse(Request, Response); } }