84 lines
2.6 KiB
C#
84 lines
2.6 KiB
C#
using AutoMapper;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using YAPContracts.AdapterContracts;
|
|
using YAPContracts.BindingModels;
|
|
using YAPContracts.BusinessLogicContracts;
|
|
using YAPContracts.DataModels;
|
|
using YAPContracts.ViewModels;
|
|
|
|
namespace YAPWebAPI.Controllers
|
|
{
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[Produces("application/json")]
|
|
public class PurchaseController(IPurchaseAdapter adapter) : ControllerBase
|
|
{
|
|
private readonly IPurchaseAdapter _adapter = adapter;
|
|
|
|
/// <summary>
|
|
/// Получить все покупки
|
|
/// </summary>
|
|
[HttpGet]
|
|
public IActionResult GetAll()
|
|
{
|
|
return _adapter.GetList().GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Получить покупку по Id
|
|
/// </summary>
|
|
[HttpGet("{id}")]
|
|
public IActionResult GetById(string id)
|
|
{
|
|
return _adapter.GetElement(id).GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Получить покупки по пользователю за период
|
|
/// </summary>
|
|
[HttpGet("byUser/{userId}")]
|
|
public IActionResult GetByUserAndPeriod(string userId, DateTime fromDate, DateTime toDate)
|
|
{
|
|
return _adapter.GetByUserAndPeriod(userId, fromDate, toDate).GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Получить покупки за период
|
|
/// </summary>
|
|
[HttpGet("byPeriod")]
|
|
public IActionResult GetByPeriod(DateTime fromDate, DateTime toDate)
|
|
{
|
|
return _adapter.GetByPeriod(fromDate, toDate).GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Добавить покупку
|
|
/// </summary>
|
|
[HttpPost]
|
|
public IActionResult Create([FromBody] PurchaseBindingModel model)
|
|
{
|
|
return _adapter.InsertPurchase(model).GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Обновить покупку
|
|
/// </summary>
|
|
[HttpPut]
|
|
public IActionResult Update([FromBody] PurchaseBindingModel model)
|
|
{
|
|
return _adapter.UpdatePurchase(model).GetResponse(Request, Response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Удалить покупку
|
|
/// </summary>
|
|
[HttpDelete("{id}")]
|
|
public IActionResult Delete(string id)
|
|
{
|
|
return _adapter.DeletePurchase(id).GetResponse(Request, Response);
|
|
}
|
|
}
|
|
}
|