diff --git a/backend/Controllers/MemoriasRamController.cs b/backend/Controllers/MemoriasRamController.cs index 55535c0..a18bf20 100644 --- a/backend/Controllers/MemoriasRamController.cs +++ b/backend/Controllers/MemoriasRamController.cs @@ -1,3 +1,5 @@ +// backend/Controllers/MemoriasRamController.cs + using Dapper; using Inventario.API.Data; using Inventario.API.Models; @@ -16,27 +18,26 @@ namespace Inventario.API.Controllers _context = context; } - // --- GET /api/memoriasram --- [HttpGet] public async Task Consultar() { var query = @" - SELECT - MIN(Id) as Id, - MIN(part_number) as PartNumber, -- Tomamos un part_number como ejemplo para el modelo - Fabricante, - Tamano, - Velocidad - FROM - dbo.memorias_ram - WHERE - Fabricante IS NOT NULL AND Fabricante != '' - GROUP BY - Fabricante, - Tamano, - Velocidad - ORDER BY - Fabricante, Tamano, Velocidad;"; + SELECT + MIN(Id) as Id, + MIN(part_number) as PartNumber, + Fabricante, + Tamano, + Velocidad + FROM + dbo.memorias_ram + WHERE + Fabricante IS NOT NULL AND Fabricante != '' + GROUP BY + Fabricante, + Tamano, + Velocidad + ORDER BY + Fabricante, Tamano, Velocidad;"; using (var connection = _context.CreateConnection()) { @@ -45,7 +46,6 @@ namespace Inventario.API.Controllers } } - // --- GET /api/memoriasram/{id} --- [HttpGet("{id}")] public async Task ConsultarDetalle(int id) { @@ -61,19 +61,17 @@ namespace Inventario.API.Controllers } } - // --- POST /api/memoriasram --- [HttpPost] public async Task Ingresar([FromBody] List memorias) { - // Consulta para verificar la existencia. Maneja correctamente los valores nulos. var queryCheck = @"SELECT * FROM dbo.memorias_ram WHERE - (part_number = @Part_number OR (part_number IS NULL AND @Part_number IS NULL)) AND + (part_number = @PartNumber OR (part_number IS NULL AND @PartNumber IS NULL)) AND (fabricante = @Fabricante OR (fabricante IS NULL AND @Fabricante IS NULL)) AND tamano = @Tamano AND (velocidad = @Velocidad OR (velocidad IS NULL AND @Velocidad IS NULL));"; var queryInsert = @"INSERT INTO dbo.memorias_ram (part_number, fabricante, tamano, velocidad) - VALUES (@Part_number, @Fabricante, @Tamano, @Velocidad); + VALUES (@PartNumber, @Fabricante, @Tamano, @Velocidad); SELECT CAST(SCOPE_IDENTITY() as int);"; var resultados = new List(); @@ -87,15 +85,8 @@ namespace Inventario.API.Controllers if (existente == null) { var nuevoId = await connection.ExecuteScalarAsync(queryInsert, memoria); - var nuevaMemoria = new MemoriaRam - { - Id = nuevoId, - Part_number = memoria.Part_number, - Fabricante = memoria.Fabricante, - Tamano = memoria.Tamano, - Velocidad = memoria.Velocidad - }; - resultados.Add(new { action = "created", registro = nuevaMemoria }); + memoria.Id = nuevoId; + resultados.Add(new { action = "created", registro = memoria }); } else { @@ -106,19 +97,18 @@ namespace Inventario.API.Controllers return Ok(resultados); } - // --- PUT /api/memoriasram/{id} --- [HttpPut("{id}")] public async Task Actualizar(int id, [FromBody] MemoriaRam memoria) { var query = @"UPDATE dbo.memorias_ram SET - part_number = @Part_number, + part_number = @PartNumber, fabricante = @Fabricante, tamano = @Tamano, velocidad = @Velocidad WHERE Id = @Id;"; using (var connection = _context.CreateConnection()) { - var filasAfectadas = await connection.ExecuteAsync(query, new { memoria.Part_number, memoria.Fabricante, memoria.Tamano, memoria.Velocidad, Id = id }); + var filasAfectadas = await connection.ExecuteAsync(query, new { memoria.PartNumber, memoria.Fabricante, memoria.Tamano, memoria.Velocidad, Id = id }); if (filasAfectadas == 0) { return NotFound("Módulo de memoria RAM no encontrado."); @@ -129,7 +119,6 @@ namespace Inventario.API.Controllers } } - // --- DELETE /api/memoriasram/{id} --- [HttpDelete("{id}")] public async Task Borrar(int id) { @@ -143,40 +132,32 @@ namespace Inventario.API.Controllers { try { - // Primero eliminamos las asociaciones en la tabla intermedia await connection.ExecuteAsync(deleteAssociationsQuery, new { Id = id }, transaction: transaction); - - // Luego eliminamos el módulo de RAM var filasAfectadas = await connection.ExecuteAsync(deleteRamQuery, new { Id = id }, transaction: transaction); - if (filasAfectadas == 0) { - // Si no se borró nada, hacemos rollback y devolvemos NotFound. transaction.Rollback(); return NotFound("Módulo de memoria RAM no encontrado."); } - - // Si todo salió bien, confirmamos la transacción. transaction.Commit(); return NoContent(); } catch { transaction.Rollback(); - throw; // Relanza la excepción para que sea manejada por el middleware de errores de ASP.NET Core + throw; } } } } - // --- GET /api/memoriasram/buscar/{termino} --- [HttpGet("buscar/{termino}")] public async Task BuscarMemoriasRam(string termino) { var query = @"SELECT Id, part_number as PartNumber, Fabricante, Tamano, Velocidad - FROM dbo.memorias_ram - WHERE Fabricante LIKE @SearchTerm OR part_number LIKE @SearchTerm - ORDER BY Fabricante, Tamano;"; + FROM dbo.memorias_ram + WHERE Fabricante LIKE @SearchTerm OR part_number LIKE @SearchTerm + ORDER BY Fabricante, Tamano;"; using (var connection = _context.CreateConnection()) { diff --git a/backend/Models/MemoriaRam.cs b/backend/Models/MemoriaRam.cs index 62b1b9d..52368cb 100644 --- a/backend/Models/MemoriaRam.cs +++ b/backend/Models/MemoriaRam.cs @@ -4,7 +4,7 @@ namespace Inventario.API.Models public class MemoriaRam { public int Id { get; set; } - public string? Part_number { get; set; } + public string? PartNumber { get; set; } public string? Fabricante { get; set; } public int Tamano { get; set; } public int? Velocidad { get; set; } diff --git a/backend/obj/Debug/net9.0/Inventario.API.AssemblyInfo.cs b/backend/obj/Debug/net9.0/Inventario.API.AssemblyInfo.cs index 2551edc..e811222 100644 --- a/backend/obj/Debug/net9.0/Inventario.API.AssemblyInfo.cs +++ b/backend/obj/Debug/net9.0/Inventario.API.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Inventario.API")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+268c1c2bf99b66ab7fb5c6dd1a2d1134d636839e")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+afd378712c9176f32a705fb3a10d2d56ed6c8ba2")] [assembly: System.Reflection.AssemblyProductAttribute("Inventario.API")] [assembly: System.Reflection.AssemblyTitleAttribute("Inventario.API")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/getDatosPost.ps1 b/getDatosPost.ps1 index 242be88..a9480a6 100644 --- a/getDatosPost.ps1 +++ b/getDatosPost.ps1 @@ -49,14 +49,14 @@ if ($isWindows7) { # Función de envío de datos para PowerShell 2.0 function Send-Data { param($Url, $Method, $Body) - try { - $webClient = New-Object System.Net.WebClient - $webClient.Headers.Add("Content-Type", "application/json") - return $webClient.UploadString($Url, $Method, $Body) - } catch { - Write-Host "Error en el envío a $Url: $($_.Exception.Message)" - return $null - } + try { + $webClient = New-Object System.Net.WebClient + $webClient.Headers.Add("Content-Type", "application/json") + return $webClient.UploadString($Url, $Method, $Body) + } catch { + Write-Host "Error en el envío a ${Url}: $($_.Exception.Message)" + return $null + } } } else { Write-Host "Ejecutando en modo estándar (PowerShell 5+)..."