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 CreditProgramsController(ICreditProgramAdapter adapter) : ControllerBase { private readonly ICreditProgramAdapter _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 GetRecordByPeriod(string data) { return _adapter.GetListByPeriod(data).GetResponse(Request, Response); } /// /// создание записи кредитной программы /// /// модель от пользователя /// [HttpPost] public IActionResult Register([FromBody] CreditProgramBindingModel model) { return _adapter.RegisterCreditProgram(model).GetResponse(Request, Response); } /// /// изменение записи кредитной программы /// /// новая модель /// [HttpPut] public IActionResult ChangeInfo([FromBody] CreditProgramBindingModel model) { return _adapter.ChangeCreditProgramInfo(model).GetResponse(Request, Response); } }