From 9699048ed1f56a5257cfd07174d1e8a8eb186686 Mon Sep 17 00:00:00 2001 From: sanchezvem Date: Tue, 17 Mar 2026 09:30:14 +0100 Subject: [PATCH] Verif time of challenge --- .../RandomChallenges/PatchProofEndpoint.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs b/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs index 562514b..c062a11 100644 --- a/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs +++ b/BeReadyBackend/Endpoints/RandomChallenges/PatchProofEndpoint.cs @@ -17,6 +17,7 @@ public class PatchProofEndpoint( UsersRepository usersRepository, UserRandomChallengesRepository userRandomChallengesRepository, UserService userService, + RandomChallengesRepository randomChallengesRepository, AutoMapper.IMapper mapper) : Endpoint { public override void Configure() @@ -27,7 +28,20 @@ public class PatchProofEndpoint( public override async Task HandleAsync(RandomChallengeProofRequest req, CancellationToken ct) { int userId = userService.GetUserIdFromToken(); + + RandomChallenge? randomChallenge = await randomChallengesRepository.SingleOrDefaultAsync(new GetRandomChallengeByIdSpec(req.RandomChallengeId), ct); + if (randomChallenge is null) + { + await Send.NotFoundAsync(ct); + return; + } + if (randomChallenge.GeneratedAt != null && DateTime.Now > randomChallenge.GeneratedAt.Value.AddHours(randomChallenge.Duration)) + { + await Send.StringAsync("Le défi est terminé", 400, cancellation: ct); + return; + } + UserRandomChallenge? userRandomChallenge = await userRandomChallengesRepository.SingleOrDefaultAsync(new GetRandomChallengeByCriteriaSpec(req.RandomChallengeId, userId), ct); if (userRandomChallenge is null)