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);
}
}