From df81c7b12d89b4f93701f801c66b8dfd2352a029 Mon Sep 17 00:00:00 2001 From: carteronm Date: Thu, 9 Oct 2025 17:19:05 +0200 Subject: [PATCH] ExperienceLevel Finished (API) 09/10 --- .../GetAllExperienceLevelsEndpoint.cs | 2 + .../GetExperienceLevelEndpoint.cs | 32 +++++++++++++++- .../UpdateExperienceLevelEndpoint.cs | 37 ++++++++++++++++++- 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/PyroFetes/Endpoints/ExperienceLevel/GetAllExperienceLevelsEndpoint.cs b/PyroFetes/Endpoints/ExperienceLevel/GetAllExperienceLevelsEndpoint.cs index 449cfca..c04d6e7 100644 --- a/PyroFetes/Endpoints/ExperienceLevel/GetAllExperienceLevelsEndpoint.cs +++ b/PyroFetes/Endpoints/ExperienceLevel/GetAllExperienceLevelsEndpoint.cs @@ -17,6 +17,8 @@ public class GetAllExperienceLevelsEndpoint(PyroFetesDbContext pyroFetesDbContex List experienceLevels= await pyroFetesDbContext.ExperienceLevels.Select(x => new GetExperienceLevelDto() { Id = x.Id, + Label = x.Label, + }).ToListAsync(ct); await Send.OkAsync(experienceLevels, ct); diff --git a/PyroFetes/Endpoints/ExperienceLevel/GetExperienceLevelEndpoint.cs b/PyroFetes/Endpoints/ExperienceLevel/GetExperienceLevelEndpoint.cs index 2123855..3ba32ce 100644 --- a/PyroFetes/Endpoints/ExperienceLevel/GetExperienceLevelEndpoint.cs +++ b/PyroFetes/Endpoints/ExperienceLevel/GetExperienceLevelEndpoint.cs @@ -1,6 +1,34 @@ +using Microsoft.EntityFrameworkCore; +using PyroFetes.DTO.ExperienceLevel.Request; +using PyroFetes.DTO.ExperienceLevel.Response; +using FastEndpoints; + namespace PyroFetes.Endpoints.ExperienceLevel; -public class GetExperienceLevelEndpoint +public class GetExperienceLevelEndpoint(PyroFetesDbContext pyroFetesDbContext) : Endpoint { - + public override void Configure() + { + Get ("/api/experienceLevels/{@Id}", x => new { x.Id }); + AllowAnonymous(); + } + + public override async Task HandleAsync(GetExperienceLevelRequest req, CancellationToken ct) + { + Models.ExperienceLevel? databaseExperienceLevel = await pyroFetesDbContext.ExperienceLevels.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct); + + if (databaseExperienceLevel == null) + { + await Send.NotFoundAsync(ct); + return; + } + + GetExperienceLevelDto dto = new() + { + Id = databaseExperienceLevel.Id, + Label = databaseExperienceLevel.Label, + }; + + await Send.OkAsync(dto, ct); + } } \ No newline at end of file diff --git a/PyroFetes/Endpoints/ExperienceLevel/UpdateExperienceLevelEndpoint.cs b/PyroFetes/Endpoints/ExperienceLevel/UpdateExperienceLevelEndpoint.cs index d2aa8a2..e928e41 100644 --- a/PyroFetes/Endpoints/ExperienceLevel/UpdateExperienceLevelEndpoint.cs +++ b/PyroFetes/Endpoints/ExperienceLevel/UpdateExperienceLevelEndpoint.cs @@ -1,6 +1,39 @@ +using FastEndpoints; +using Microsoft.EntityFrameworkCore; +using PyroFetes.DTO.ExperienceLevel.Request; +using PyroFetes.DTO.ExperienceLevel.Response; + namespace PyroFetes.Endpoints.ExperienceLevel; -public class UpdateExperienceLevelEndpoint +public class UpdateExperienceLevelEndpoint(PyroFetesDbContext pyroFetesDbContext) : Endpoint { - + public override void Configure() + { + Put ("/api/ExperienceLevels/{@Id}", x => new { x.Id }); + AllowAnonymous(); + } + + public override async Task HandleAsync(UpdateExperienceLevelDto req, CancellationToken ct) + { + Models.ExperienceLevel? databaseExperienceLevel = await pyroFetesDbContext.ExperienceLevels.SingleOrDefaultAsync(x => x.Id == req.Id, cancellationToken: ct); + + if (databaseExperienceLevel == null) + { + await Send.NotFoundAsync(ct); + return; + } + else + { + databaseExperienceLevel.Label = req.Label; + } + await pyroFetesDbContext.SaveChangesAsync(ct); + + GetExperienceLevelDto dto = new() + { + Id = databaseExperienceLevel.Id, + Label = req.Label, + }; + + await Send.OkAsync(dto, ct); + } } \ No newline at end of file