Refactor code structure for improved readability and maintainability

This commit is contained in:
2026-05-06 14:47:16 +02:00
parent 55b4405c28
commit 806138def6
19 changed files with 3756 additions and 129 deletions
+75
View File
@@ -0,0 +1,75 @@
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlite("Data Source=fitness.db"));
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddOpenApiDocument();
builder.Services.AddSwaggerGen();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseOpenApi();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
// ===================================================================
// CRUD ENDPUNKTE (minimal, ohne Auth)
// ===================================================================
// CREATE
app.MapPost("/api/workouts", async (Workout workout, AppDbContext db) =>
{
workout.Id = Guid.NewGuid();
db.Workouts.Add(workout);
await db.SaveChangesAsync();
return Results.Created($"/api/workouts/{workout.Id}", workout);
});
// READ ALL
app.MapGet("/api/workouts", async (AppDbContext db) =>
await db.Workouts.OrderByDescending(w => w.Date).ToListAsync());
// READ BY ID
app.MapGet("/api/workouts/{id:guid}", async (Guid id, AppDbContext db) =>
await db.Workouts.FindAsync(id) is Workout w ? Results.Ok(w) : Results.NotFound());
// UPDATE
app.MapPut("/api/workouts/{id:guid}", async (Guid id, Workout input, AppDbContext db) =>
{
var workout = await db.Workouts.FindAsync(id);
if (workout is null) return Results.NotFound();
workout.Name = input.Name;
workout.Date = input.Date;
workout.DurationMinutes = input.DurationMinutes;
workout.Notes = input.Notes;
await db.SaveChangesAsync();
return Results.Ok(workout);
});
// DELETE
app.MapDelete("/api/workouts/{id:guid}", async (Guid id, AppDbContext db) =>
{
var workout = await db.Workouts.FindAsync(id);
if (workout is null) return Results.NotFound();
db.Workouts.Remove(workout);
await db.SaveChangesAsync();
return Results.NoContent();
});
app.MapGet("/", () => "🏋️ Fitness API läuft!");
app.Run();
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
public DbSet<Workout> Workouts => Set<Workout>();
}