diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/AffiliationService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/AffiliationService.java index a2b79a8..3bafd63 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/AffiliationService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/AffiliationService.java @@ -267,7 +267,9 @@ public class AffiliationService { }).call(m -> Panache.withTransaction(() -> combRepository.persist(m))); } }) - .call(m -> ((m.getUserId() == null) ? keycloakService.initCompte(m.getId()) : + .call(m -> ((m.getUserId() == null) ? keycloakService.initCompte(m.getId()) + .onFailure().invoke(t -> LOGGER.warnf("Failed to init account: %s", t.getMessage())).onFailure() + .recoverWithNull() : keycloakService.setClubGroupMembre(m, club).map(__ -> m.getUserId())) .call(userId -> keycloakService.setAutoRoleMembre(userId, m.getRole(), m.getGrade_arbitrage())) .call(userId -> keycloakService.setEmail(userId, m.getEmail()))) @@ -275,7 +277,7 @@ public class AffiliationService { .call(l1 -> l1 != null && l1.stream().anyMatch(l -> l.getSaison() == saison) ? Uni.createFrom().nullItem() : Panache.withTransaction(() -> licenceRepository.persist( - new LicenceModel(null, m, club.getId(), saison, null, true, false))) + new LicenceModel(null, m, club.getId(), saison, null, true, false))) .call(licenceModel -> ls.logA(LogModel.ActionType.ADD, m.getObjectName(), licenceModel)))); } diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java index 2269249..751df30 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/LicenceService.java @@ -18,6 +18,7 @@ import io.smallrye.mutiny.unchecked.Unchecked; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import org.hibernate.reactive.mutiny.Mutiny; +import org.jboss.logging.Logger; import java.util.List; import java.util.function.Consumer; @@ -26,6 +27,7 @@ import java.util.function.Function; @WithSession @ApplicationScoped public class LicenceService { + private static final Logger LOGGER = Logger.getLogger(LicenceService.class); @Inject LicenceRepository repository; @@ -125,7 +127,9 @@ public class LicenceService { .chain(() -> combRepository.persist(membreModel)) : Uni.createFrom().nullItem()) .call(__ -> (membreModel.getUserId() == null) ? - keycloakService.initCompte(membreModel.getId()) + keycloakService.initCompte(membreModel.getId()).onFailure() + .invoke(t -> LOGGER.infof("Failed to init account: %s", t.getMessage())).onFailure() + .recoverWithNull() : Uni.createFrom().nullItem()); } diff --git a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java index 2dc7e7a..781cf95 100644 --- a/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java +++ b/src/main/java/fr/titionfire/ffsaf/domain/service/MembreService.java @@ -210,11 +210,12 @@ public class MembreService { return repository.list("licence IN ?1 OR LOWER(lname || ' ' || fname) IN ?2 OR email IN ?3", data2.stream().map(SimpleMembreInOutData::getLicence).filter(Objects::nonNull).toList(), data2.stream().map(o -> (o.getNom() + " " + o.getPrenom()).toLowerCase()).toList(), - data2.stream().map(SimpleMembreInOutData::getEmail).filter(o -> o != null && !o.isBlank()).toList()); + data2.stream().map(SimpleMembreInOutData::getEmail).filter(o -> o != null && !o.isBlank()) + .toList()); }) .call(Unchecked.function(membres -> { for (MembreModel membreModel : membres) { - if (!Objects.equals(membreModel.getClub(), clubModel.get())){ + if (!Objects.equals(membreModel.getClub(), clubModel.get())) { LOGGER.info("Similar membres found: " + membreModel); throw new DForbiddenException( "Le membre n°" + membreModel.getLicence() + " n'appartient pas à votre club"); @@ -225,7 +226,8 @@ public class MembreService { MembreModel model = membres.stream() .filter(m -> Objects.equals(m.getLicence(), dataIn.getLicence()) || m.getLname() .equals(dataIn.getNom()) && m.getFname().equals(dataIn.getPrenom()) || - Objects.equals(m.getFname(), dataIn.getEmail())).findFirst() + (dataIn.getEmail() != null && !dataIn.getEmail().isBlank() && Objects.equals( + m.getFname(), dataIn.getEmail()))).findFirst() .orElseGet(() -> { MembreModel mm = new MembreModel(); mm.setClub(clubModel.get());