phronCare/phronCare.API/Controllers/Stock/ProductDivisionController.cs
Leandro Hernan Rojas 85fedf79af
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 7m45s
Add Stock Module MVP Divisiones
2025-06-27 13:52:22 -03:00

99 lines
2.9 KiB
C#

using Core.Interfaces.Stock;
using Domain.Entities;
using Microsoft.AspNetCore.Mvc;
namespace phronCare.API.Controllers.Stock
{
[Route("api/[controller]")]
[ApiController]
public class ProductDivisionController : ControllerBase
{
private readonly IProductDivisionDom _service;
public ProductDivisionController(IProductDivisionDom service)
{
_service = service ?? throw new ArgumentNullException(nameof(service));
}
[HttpGet("GetAll")]
public async Task<IActionResult> GetAll([FromQuery] int page = 1, [FromQuery] int pageSize = 50)
{
try
{
var result = await _service.GetAllAsync(page, pageSize);
return Ok(result);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpGet("GetById/{id}")]
public async Task<IActionResult> GetById(int id)
{
var result = await _service.GetByIdAsync(id);
if (result == null)
return NotFound($"No se encontró una división con ID {id}.");
return Ok(result);
}
[HttpGet("Search")]
public async Task<IActionResult> Search([FromQuery] string? term, [FromQuery] int page = 1, [FromQuery] int pageSize = 50)
{
try
{
var result = await _service.SearchAsync(term, page, pageSize);
return Ok(result);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPost("Create")]
public async Task<IActionResult> Create([FromBody] EProductDivision division)
{
try
{
var created = await _service.CreateAsync(division);
return CreatedAtAction(nameof(GetById), new { id = created.Id }, created);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPut("Update")]
public async Task<IActionResult> Update([FromBody] EProductDivision division)
{
try
{
var updated = await _service.UpdateAsync(division);
return updated ? Ok() : NotFound($"No se encontró una división con ID {division.Id}.");
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpDelete("Delete/{id}")]
public async Task<IActionResult> Delete(int id)
{
try
{
var deleted = await _service.DeleteAsync(id);
return deleted ? Ok() : NotFound($"No se encontró una división con ID {id}.");
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
}
}