Fase 1: Creación del backend API con .NET, Dapper y endpoints CRUD para Titulares
This commit is contained in:
		
							
								
								
									
										66
									
								
								backend/src/Titulares.Api/Controllers/TitularesController.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								backend/src/Titulares.Api/Controllers/TitularesController.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| // backend/src/Titulares.Api/Controllers/TitularesController.cs | ||||
|  | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using Titulares.Api.Data; | ||||
| using Titulares.Api.Models; | ||||
|  | ||||
| namespace Titulares.Api.Controllers; | ||||
|  | ||||
| [ApiController] | ||||
| [Route("api/[controller]")] | ||||
| public class TitularesController : ControllerBase | ||||
| { | ||||
|   private readonly TitularRepositorio _repositorio; | ||||
|  | ||||
|   public TitularesController(TitularRepositorio repositorio) | ||||
|   { | ||||
|     _repositorio = repositorio; | ||||
|   } | ||||
|  | ||||
|   [HttpGet] | ||||
|   public async Task<IActionResult> ObtenerTodos() | ||||
|   { | ||||
|     var titulares = await _repositorio.ObtenerTodosAsync(); | ||||
|     return Ok(titulares); | ||||
|   } | ||||
|  | ||||
|   [HttpPost] | ||||
|   public async Task<IActionResult> CrearManual([FromBody] CrearTitularDto titularDto) | ||||
|   { | ||||
|     if (!ModelState.IsValid) | ||||
|     { | ||||
|       return BadRequest(ModelState); | ||||
|     } | ||||
|     var nuevoId = await _repositorio.CrearManualAsync(titularDto); | ||||
|     return CreatedAtAction(nameof(ObtenerTodos), new { id = nuevoId }, null); | ||||
|   } | ||||
|  | ||||
|   [HttpPut("{id}")] | ||||
|   public async Task<IActionResult> Actualizar(int id, [FromBody] ActualizarTitularDto titularDto) | ||||
|   { | ||||
|     if (!ModelState.IsValid) | ||||
|     { | ||||
|       return BadRequest(ModelState); | ||||
|     } | ||||
|     var resultado = await _repositorio.ActualizarTextoAsync(id, titularDto); | ||||
|     return resultado ? NoContent() : NotFound(); | ||||
|   } | ||||
|  | ||||
|   [HttpPut("reordenar")] | ||||
|   public async Task<IActionResult> Reordenar([FromBody] List<ReordenarTitularDto> ordenes) | ||||
|   { | ||||
|     if (ordenes == null || !ordenes.Any()) | ||||
|     { | ||||
|       return BadRequest("La lista de órdenes no puede estar vacía."); | ||||
|     } | ||||
|     var resultado = await _repositorio.ActualizarOrdenAsync(ordenes); | ||||
|     return resultado ? Ok() : StatusCode(500, "Error al actualizar el orden."); | ||||
|   } | ||||
|  | ||||
|   [HttpDelete("{id}")] | ||||
|   public async Task<IActionResult> Eliminar(int id) | ||||
|   { | ||||
|     var resultado = await _repositorio.EliminarAsync(id); | ||||
|     return resultado ? NoContent() : NotFound(); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user