feat: Complete API endpoints for grains and cattle data
This commit is contained in:
@@ -9,15 +9,60 @@ namespace Mercados.Api.Controllers
|
||||
public class MercadosController : ControllerBase
|
||||
{
|
||||
private readonly ICotizacionBolsaRepository _bolsaRepo;
|
||||
private readonly ICotizacionGranoRepository _granoRepo;
|
||||
private readonly ICotizacionGanadoRepository _ganadoRepo;
|
||||
private readonly ILogger<MercadosController> _logger;
|
||||
|
||||
// Inyectamos los repositorios que este controlador necesita.
|
||||
public MercadosController(ICotizacionBolsaRepository bolsaRepo, ILogger<MercadosController> logger)
|
||||
// Inyectamos TODOS los repositorios que necesita el controlador.
|
||||
public MercadosController(
|
||||
ICotizacionBolsaRepository bolsaRepo,
|
||||
ICotizacionGranoRepository granoRepo,
|
||||
ICotizacionGanadoRepository ganadoRepo,
|
||||
ILogger<MercadosController> logger)
|
||||
{
|
||||
_bolsaRepo = bolsaRepo;
|
||||
_granoRepo = granoRepo;
|
||||
_ganadoRepo = ganadoRepo;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
// --- Endpoint para Agroganadero ---
|
||||
[HttpGet("agroganadero")]
|
||||
[ProducesResponseType(typeof(IEnumerable<CotizacionGanado>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<IActionResult> GetAgroganadero()
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = await _ganadoRepo.ObtenerUltimaTandaAsync();
|
||||
return Ok(data);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error al obtener cotizaciones de agroganadero.");
|
||||
return StatusCode(500, "Ocurrió un error interno en el servidor.");
|
||||
}
|
||||
}
|
||||
|
||||
// --- Endpoint para Granos ---
|
||||
[HttpGet("granos")]
|
||||
[ProducesResponseType(typeof(IEnumerable<CotizacionGrano>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<IActionResult> GetGranos()
|
||||
{
|
||||
try
|
||||
{
|
||||
var data = await _granoRepo.ObtenerUltimasAsync();
|
||||
return Ok(data);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error al obtener cotizaciones de granos.");
|
||||
return StatusCode(500, "Ocurrió un error interno en el servidor.");
|
||||
}
|
||||
}
|
||||
|
||||
// --- Endpoints de Bolsa ---
|
||||
[HttpGet("bolsa/eeuu")]
|
||||
[ProducesResponseType(typeof(IEnumerable<CotizacionBolsa>), StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
@@ -51,7 +96,5 @@ namespace Mercados.Api.Controllers
|
||||
return StatusCode(500, "Ocurrió un error interno en el servidor.");
|
||||
}
|
||||
}
|
||||
|
||||
// NOTA: Añadiremos los endpoints para Granos y Ganado en un momento.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user