using Microsoft.AspNetCore.JsonPatch; using Microsoft.AspNetCore.Mvc; using Products.Business.Service; using Products.Common.Dtos; namespace Products.API.Controllers; [Route("api/[controller]")] [ApiController] public class ProductsController : ControllerBase { private readonly IProductService _productService; public ProductsController(IProductService productService) { _productService = productService; } [HttpGet] public ActionResult> Get() { return Ok(_productService.GetProducts()); } [HttpGet("{id}")] public ActionResult Get(int id) { return Ok(_productService.GetProduct(id)); } [HttpPost] public ActionResult Post(CreateProductDto product) { return Ok(_productService.AddProduct(product)); } [HttpPatch("{id}")] public ActionResult Patch(int id, JsonPatchDocument product) { return Ok(_productService.PatchProduct(id, product)); } [HttpPut("{id}")] public ActionResult Put(int id, UpdateProductDto product) { return Ok(_productService.UpdateProduct(id, product)); } [HttpDelete("{id}")] public ActionResult Delete(int id) { _productService.DeleteProduct(id); return Ok(); } }