feat: lock membre creation with same name

This commit is contained in:
Thibaut Valentin 2025-08-12 15:52:19 +02:00
parent c85c28fee2
commit 41a88ea914

View File

@ -385,6 +385,14 @@ public class MembreService {
public Uni<Long> add(FullMemberForm input, String subject) {
return repository.find("userId = ?1", subject).firstResult()
.call(membreModel ->
repository.count(
"unaccent(lname) ILIKE unaccent(?2) AND unaccent(fname) ILIKE unaccent(?2) AND club = ?3",
input.getLname(), input.getFname(), membreModel.getClub())
.invoke(Unchecked.consumer(c -> {
if (c > 0)
throw new DBadRequestException("Membre déjà existent");
})))
.chain(membreModel -> {
MembreModel model = getMembreModel(input, membreModel.getClub());
model.setRole(RoleAsso.MEMBRE);