From 1e37c43dcd3ad7e2bfbd46c44bdaa60842232ba0 Mon Sep 17 00:00:00 2001 From: Thibaut Valentin Date: Fri, 15 Aug 2025 18:25:05 +0200 Subject: [PATCH] feat: add checkout table auto clean + disable pay button for pre deployment test --- .../ffsaf/domain/service/CheckoutService.java | 14 ++++++++++++++ src/main/webapp/src/pages/MemberList.jsx | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/CheckoutService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/CheckoutService.java index 20de61a..ce2ee6d 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/CheckoutService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/CheckoutService.java @@ -13,6 +13,7 @@ import fr.titionfire.ffsaf.utils.SecurityCtx; import fr.titionfire.ffsaf.utils.Utils; import io.quarkus.hibernate.reactive.panache.Panache; import io.quarkus.hibernate.reactive.panache.common.WithSession; +import io.quarkus.scheduler.Scheduled; import io.smallrye.mutiny.Uni; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -21,6 +22,8 @@ import org.eclipse.microprofile.config.inject.ConfigProperty; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.hibernate.reactive.mutiny.Mutiny; +import java.util.Calendar; +import java.util.Date; import java.util.List; @WithSession @@ -158,4 +161,15 @@ public class CheckoutService { .onFailure().invoke(Throwable::printStackTrace) .map(__ -> Response.ok().build()); } + + @Scheduled(cron = "0 0 * * * ?") + Uni everyHours() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.HOUR, -1); + Date dateLimit = calendar.getTime(); + + return repository.delete("creationDate < ?1 AND (checkoutId IS NULL OR paymentStatus = ?2)", dateLimit, + CheckoutModel.PaymentStatus.UNKNOW) + .map(__ -> null); + } } diff --git a/src/main/webapp/src/pages/MemberList.jsx b/src/main/webapp/src/pages/MemberList.jsx index 2020d40..ccc6202 100644 --- a/src/main/webapp/src/pages/MemberList.jsx +++ b/src/main/webapp/src/pages/MemberList.jsx @@ -98,7 +98,7 @@ export function MemberList({source}) { {source === "admin" && } - {source === "club" && + {source === "club" && false && // TODO: enable when payment is ready }