using Vegasco.WebApi.Persistence; namespace Vegasco.WebApi.Cars; public static class GetCar { public record Response(Guid Id, string Name); public static RouteHandlerBuilder MapEndpoint(IEndpointRouteBuilder builder) { return builder .MapGet("cars/{id:guid}", Endpoint) .WithTags("Cars"); } private static async Task Endpoint( Guid id, ApplicationDbContext dbContext, CancellationToken cancellationToken) { Car? car = await dbContext.Cars.FindAsync([new CarId(id)], cancellationToken: cancellationToken); if (car is null) { return TypedResults.NotFound(); } var response = new Response(car.Id.Value, car.Name); return TypedResults.Ok(response); } }