mirror of
https://github.com/BarkProductions/barkman.git
synced 2026-06-12 22:11:54 +00:00
8375999172
Implemented GET, POST, PUT, and DELETE endpoints for the `/inventory` resource. These endpoints provide full CRUD functionality, handling operations such as retrieval, creation, update, and deletion of inventory items in the database. Adds appropriate error handling for cases where inventory items are not found.
79 lines
2.2 KiB
C#
79 lines
2.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.OpenApi.Models;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
builder.Services.AddDbContext<BarkContext>();
|
|
builder.Services.AddEndpointsApiExplorer();
|
|
builder.Services.AddSwaggerGen(c =>
|
|
{
|
|
c.SwaggerDoc("v1", new OpenApiInfo { Title = "BarkMan API", Description = "BARK BARK WOOF WOOF", Version = "v1" });
|
|
});
|
|
|
|
var app = builder.Build();
|
|
|
|
if (app.Environment.IsDevelopment())
|
|
{
|
|
app.UseSwagger();
|
|
app.UseSwaggerUI(c =>
|
|
{
|
|
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Bark Inventory API V1");
|
|
});
|
|
}
|
|
|
|
app.MapGet("/", () => "Hello World!");
|
|
|
|
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.Run(); |