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 DepositsController(IDepositAdapter adapter) : ControllerBase { private readonly IDepositAdapter _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); } /// /// создание записи вклада /// /// модель от пользователя /// [HttpPost] public IActionResult Register([FromBody] DepositBindingModel model) { return _adapter.MakeDeposit(model).GetResponse(Request, Response); } /// /// изменение записи вклада /// /// новая модель /// [HttpPut] public IActionResult ChangeInfo([FromBody] DepositBindingModel model) { return _adapter.ChangeDepositInfo(model).GetResponse(Request, Response); } }