feat: auto categories
This commit is contained in:
@@ -47,7 +47,8 @@ public class CombEntity {
|
||||
return null;
|
||||
|
||||
return new CombEntity(model.getId() * -1, model.getLname(), model.getFname(), model.getCategorie(), null,
|
||||
model.getClub(), model.getGenre(), model.getCountry(), 0, model.getWeight(),
|
||||
model.getClub(), model.getGenre(), model.getCountry(), 0,
|
||||
model.getWeight2() != null ? model.getWeight2() : model.getWeight(),
|
||||
Stream.concat(model.getComb().stream().map(CombEntity::fromModel),
|
||||
model.getGuest().stream().map(CombEntity::fromModel)).toList(),
|
||||
new ArrayList<>());
|
||||
@@ -68,7 +69,8 @@ public class CombEntity {
|
||||
return new CombEntity(model.getId(), model.getLname(), model.getFname(), registerModel.getCategorie(),
|
||||
registerModel.getClub2() == null ? null : registerModel.getClub2().getClubId(),
|
||||
registerModel.getClub2() == null ? "Sans club" : registerModel.getClub2().getName(), model.getGenre(),
|
||||
model.getCountry(), registerModel.getOverCategory(), registerModel.getWeight(), new ArrayList<>(),
|
||||
new ArrayList<>());
|
||||
model.getCountry(), registerModel.getOverCategory(),
|
||||
registerModel.getWeight2() != null ? registerModel.getWeight2() : registerModel.getWeight(),
|
||||
new ArrayList<>(), new ArrayList<>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,6 +368,9 @@ public class CompetitionService {
|
||||
return Panache.withTransaction(() -> repository.persist(c));
|
||||
})
|
||||
.chain(combModel -> updateRegister(data, c, combModel, true, false)))
|
||||
.call(r -> r.getCompetition().getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegisterNoFetch(r.getCompetition().getUuid(), r) : Uni.createFrom()
|
||||
.voidItem())
|
||||
.map(r -> SimpleRegisterComb.fromModel(r, r.getMembre().getLicences())
|
||||
.setCategorieInscrite(r.getCategoriesInscrites()));
|
||||
} else {
|
||||
@@ -406,8 +409,8 @@ public class CompetitionService {
|
||||
}))
|
||||
.chain(model -> Panache.withTransaction(() -> competitionGuestRepository.persist(model))
|
||||
.call(r -> model.getCompetition().getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegister(model.getCompetition().getUuid(),
|
||||
r) : Uni.createFrom().voidItem()))
|
||||
sRegister.sendRegisterNoFetch(model.getCompetition().getUuid(), r)
|
||||
: Uni.createFrom().voidItem()))
|
||||
.map(g -> SimpleRegisterComb.fromModel(g).setCategorieInscrite(g.getCategoriesInscrites()));
|
||||
}
|
||||
if ("club".equals(source))
|
||||
@@ -428,6 +431,9 @@ public class CompetitionService {
|
||||
throw new DForbiddenException(trad.t("insc.err1"));
|
||||
}))
|
||||
.chain(combModel -> updateRegister(data, c, combModel, false, false)))
|
||||
.call(r -> r.getCompetition().getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegisterNoFetch(r.getCompetition().getUuid(), r) : Uni.createFrom()
|
||||
.voidItem())
|
||||
.map(r -> SimpleRegisterComb.fromModel(r, r.getMembre().getLicences())
|
||||
.setCategorieInscrite(r.getCategoriesInscrites()));
|
||||
|
||||
@@ -444,6 +450,8 @@ public class CompetitionService {
|
||||
throw new DForbiddenException(trad.t("insc.err2"));
|
||||
}))
|
||||
.chain(combModel -> updateRegister(data, c, combModel, false, false)))
|
||||
.call(r -> r.getCompetition().getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegisterNoFetch(r.getCompetition().getUuid(), r) : Uni.createFrom().voidItem())
|
||||
.map(r -> SimpleRegisterComb.fromModel(r, List.of()).setCategorieInscrite(r.getCategoriesInscrites()));
|
||||
}
|
||||
|
||||
@@ -453,33 +461,33 @@ public class CompetitionService {
|
||||
if (!"admin".equals(source))
|
||||
return Uni.createFrom().failure(new DForbiddenException());
|
||||
|
||||
return Multi.createFrom().iterable(datas).onItem().transformToUni(data ->
|
||||
makeImportUpdate(securityCtx, id, data).onFailure().recoverWithItem(t -> {
|
||||
SimpleRegisterComb errorComb = new SimpleRegisterComb();
|
||||
errorComb.setLicence(-42);
|
||||
errorComb.setFname("ERROR");
|
||||
errorComb.setLname(t.getMessage());
|
||||
return errorComb;
|
||||
})).concatenate().collect().asList();
|
||||
return permService.hasEditPerm(securityCtx, id)
|
||||
.chain(cm -> Multi.createFrom().iterable(datas).onItem().transformToUni(data ->
|
||||
makeImportUpdate(cm, data).onFailure().recoverWithItem(t -> {
|
||||
SimpleRegisterComb errorComb = new SimpleRegisterComb();
|
||||
errorComb.setLicence(-42);
|
||||
errorComb.setFname("ERROR");
|
||||
errorComb.setLname(t.getMessage());
|
||||
return errorComb;
|
||||
})).concatenate().collect().asList());
|
||||
}
|
||||
|
||||
private Uni<SimpleRegisterComb> makeImportUpdate(SecurityCtx securityCtx, Long id, RegisterRequestData data) {
|
||||
@WithSession
|
||||
public Uni<SimpleRegisterComb> makeImportUpdate(CompetitionModel c, RegisterRequestData data) {
|
||||
if (data.getLicence() == null || data.getLicence() != -1) { // not a guest
|
||||
return permService.hasEditPerm(securityCtx, id)
|
||||
.chain(c -> findComb(data.getLicence(), data.getFname(), data.getLname())
|
||||
.call(combModel -> Mutiny.fetch(combModel.getLicences()))
|
||||
.call(combModel -> {
|
||||
if (c.getBanMembre() == null)
|
||||
c.setBanMembre(new ArrayList<>());
|
||||
c.getBanMembre().remove(combModel.getId());
|
||||
return Panache.withTransaction(() -> repository.persist(c));
|
||||
})
|
||||
.chain(combModel -> updateRegister(data, c, combModel, true, true)))
|
||||
return findComb(data.getLicence(), data.getFname(), data.getLname())
|
||||
.call(combModel -> Mutiny.fetch(combModel.getLicences()))
|
||||
.call(combModel -> {
|
||||
if (c.getBanMembre() == null)
|
||||
c.setBanMembre(new ArrayList<>());
|
||||
c.getBanMembre().remove(combModel.getId());
|
||||
return Panache.withTransaction(() -> repository.persist(c));
|
||||
})
|
||||
.chain(combModel -> updateRegister(data, c, combModel, true, true))
|
||||
.map(r -> SimpleRegisterComb.fromModel(r, r.getMembre().getLicences())
|
||||
.setCategorieInscrite(r.getCategoriesInscrites()));
|
||||
} else {
|
||||
return permService.hasEditPerm(securityCtx, id)
|
||||
.chain(c -> findGuestOrInit(data.getFname(), data.getLname(), c))
|
||||
return findGuestOrInit(data.getFname(), data.getLname(), c)
|
||||
.invoke(Unchecked.consumer(model -> {
|
||||
if (data.getCategorie() == null)
|
||||
throw new DBadRequestException(trad.t("categorie.requise"));
|
||||
@@ -503,13 +511,13 @@ public class CompetitionService {
|
||||
} else
|
||||
model.setCountry(data.getCountry());
|
||||
|
||||
if (model.getCompetition().getRequiredWeight().contains(model.getCategorie())) {
|
||||
if (c.getRequiredWeight().contains(model.getCategorie())) {
|
||||
if (data.getCountry() != null)
|
||||
model.setWeight(data.getWeight());
|
||||
}
|
||||
}))
|
||||
.call(g -> Mutiny.fetch(g.getCategoriesInscrites()))
|
||||
.call(g -> catPresetRepository.list("competition = ?1 AND id IN ?2", g.getCompetition(),
|
||||
.call(g -> catPresetRepository.list("competition = ?1 AND id IN ?2", c,
|
||||
data.getCategoriesInscrites())
|
||||
.invoke(cats -> {
|
||||
g.getCategoriesInscrites().clear();
|
||||
@@ -518,9 +526,8 @@ public class CompetitionService {
|
||||
.noneMatch(e -> e.getCategorie().equals(g.getCategorie())));
|
||||
}))
|
||||
.chain(model -> Panache.withTransaction(() -> competitionGuestRepository.persist(model))
|
||||
.call(r -> model.getCompetition().getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegister(model.getCompetition().getUuid(),
|
||||
r) : Uni.createFrom().voidItem()))
|
||||
.call(r -> c.getSystem() == CompetitionSystem.INTERNAL ?
|
||||
sRegister.sendRegister(c.getUuid(), r) : Uni.createFrom().voidItem()))
|
||||
.map(g -> SimpleRegisterComb.fromModel(g).setCategorieInscrite(g.getCategoriesInscrites()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,7 +117,13 @@ public class RCategorie {
|
||||
categoryModel.setTree(new ArrayList<>());
|
||||
categoryModel.setType(categorie.type);
|
||||
categoryModel.setLiceName(categorie.liceName);
|
||||
categoryModel.setTreeAreClassement(categorie.treeAreClassement);
|
||||
categoryModel.setFullClassement(categorie.fullClassement);
|
||||
|
||||
if (categorie.preset() != null)
|
||||
return catPresetRepository.findById(categorie.preset().getId())
|
||||
.invoke(categoryModel::setPreset)
|
||||
.chain(__ -> categoryRepository.create(categoryModel));
|
||||
return categoryRepository.create(categoryModel);
|
||||
})
|
||||
.invoke(cat -> SSCategorie.sendAddCategory(connection, cat))
|
||||
|
||||
@@ -40,6 +40,16 @@ public class SRegister {
|
||||
.chain(cardModels -> send(uuid, "sendCards", cardModels))));
|
||||
}
|
||||
|
||||
public Uni<Void> sendRegisterNoFetch(String uuid, RegisterModel registerModel) {
|
||||
return send(uuid, "sendRegister",
|
||||
CombEntity.fromModel(registerModel).addCategoriesInscrites(registerModel.getCategoriesInscrites()))
|
||||
.call(__ -> registerModel.getClub2() == null ? Uni.createFrom().voidItem() :
|
||||
cardService.addTeamCartToNewComb(registerModel.getMembre().getId(),
|
||||
registerModel.getClub2().getClubId(), registerModel.getClub2().getName(),
|
||||
registerModel.getCompetition())
|
||||
.chain(cardModels -> send(uuid, "sendCards", cardModels)));
|
||||
}
|
||||
|
||||
public Uni<Void> sendRegister(String uuid, CompetitionGuestModel model) {
|
||||
return Mutiny.fetch(model.getCategoriesInscrites()).chain(o ->
|
||||
send(uuid, "sendRegister", CombEntity.fromModel(model).addCategoriesInscrites(o))
|
||||
@@ -48,6 +58,14 @@ public class SRegister {
|
||||
.chain(cardModels -> send(uuid, "sendCards", cardModels))));
|
||||
}
|
||||
|
||||
public Uni<Void> sendRegisterNoFetch(String uuid, CompetitionGuestModel model) {
|
||||
return send(uuid, "sendRegister",
|
||||
CombEntity.fromModel(model).addCategoriesInscrites(model.getCategoriesInscrites()))
|
||||
.call(__ -> cardService.addTeamCartToNewComb(model.getId() * -1,
|
||||
null, model.getClub(), model.getCompetition())
|
||||
.chain(cardModels -> send(uuid, "sendCards", cardModels)));
|
||||
}
|
||||
|
||||
public Uni<Void> sendRegisterRemove(String uuid, Long combId) {
|
||||
return send(uuid, "sendRegisterRemove", combId)
|
||||
.call(__ -> cardService.rmTeamCardFromComb(combId, uuid));
|
||||
|
||||
Reference in New Issue
Block a user