diff --git a/barkmanAPI/Program.cs b/barkmanAPI/Program.cs index 3db11ec..5840703 100644 --- a/barkmanAPI/Program.cs +++ b/barkmanAPI/Program.cs @@ -1,7 +1,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.OpenApi.Models; - var builder = WebApplication.CreateBuilder(args); builder.Services.AddDbContext(); @@ -24,14 +23,57 @@ if (app.Environment.IsDevelopment()) app.MapGet("/", () => "Hello World!"); -// app.MapGet("/inventory", async (InventoryItems dbContext) => -// { -// var inventoryItems = await dbContext.Set().ToListAsync(); -// return Results.Ok(inventoryItems); -// }); +app.MapGet("/inventory", async (BarkContext db) => + await db.Inventory.ToListAsync()); + +app.MapGet("/inventory/{id}", async (int id, BarkContext db) => +{ + var item = await db.Inventory.FindAsync(id); + if (item == null) + { + return Results.NotFound(new { Message = "Inventory item not found" }); + } + return Results.Ok(item); +}); + +app.MapPut("/inventory/{id}", async (int id, InventoryItems updatedItem, BarkContext db) => +{ + var existingItem = await db.Inventory.FindAsync(id); + if (existingItem == null) + { + return Results.NotFound(new { Message = "Inventory item not found" }); + } + + existingItem.Name = updatedItem.Name; + existingItem.Brand = updatedItem.Brand; + existingItem.SerialNumber = updatedItem.SerialNumber; + existingItem.Status = updatedItem.Status; + existingItem.RentalPrice = updatedItem.RentalPrice; + existingItem.ReplacementCost = updatedItem.ReplacementCost; + existingItem.Notes = updatedItem.Notes; + + await db.SaveChangesAsync(); + return Results.Ok(existingItem); + }); + + +app.MapPost("/inventory", async (InventoryItems newItem, BarkContext db) => +{ + db.Inventory.Add(newItem); + await db.SaveChangesAsync(); + return Results.Created($"/inventory/{newItem.Id}", newItem); +}); + +app.MapDelete("/inventory/{id}", async (int id, BarkContext db) => +{ + var item = await db.Inventory.FindAsync(id); + if (item == null) { + return Results.NotFound(new { Message = "Inventory item not found" }); + } + db.Inventory.Remove(item); + await db.SaveChangesAsync(); + return Results.Ok(new { Message = "Inventory item deleted successfully" }); +}); -//app.MapGet("/inventory/{id}", (int id) => InventoryDb.GetInventory(id)); -//app.MapPut("/inventory", (InventoryItem item) => InventoryDb.UpdateItem(item)); -//app.MapDelete("/inventory/{id}", (int id) => InventoryDb.RemoveItem(id)); app.Run(); \ No newline at end of file