feat(insc): add frontend

This commit is contained in:
2025-02-11 21:23:03 +01:00
parent df33d49cff
commit 3f1fddccd1
9 changed files with 513 additions and 26 deletions

View File

@@ -2,7 +2,9 @@ package fr.titionfire.ffsaf.rest;
import fr.titionfire.ffsaf.domain.service.CompetitionService;
import fr.titionfire.ffsaf.rest.data.CompetitionData;
import fr.titionfire.ffsaf.rest.data.RegisterRequestData;
import fr.titionfire.ffsaf.rest.data.SimpleCompetData;
import fr.titionfire.ffsaf.rest.data.SimpleRegisterComb;
import fr.titionfire.ffsaf.utils.CompetitionSystem;
import fr.titionfire.ffsaf.utils.SecurityCtx;
import io.quarkus.security.Authenticated;
@@ -10,6 +12,7 @@ import io.smallrye.mutiny.Uni;
import jakarta.inject.Inject;
import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType;
import org.eclipse.microprofile.openapi.annotations.Operation;
import java.util.List;
@@ -30,6 +33,32 @@ public class CompetitionEndpoints {
return service.getById(securityCtx, id);
}
@GET
@Path("{id}/register")
@Authenticated
@Produces(MediaType.APPLICATION_JSON)
public Uni<List<SimpleRegisterComb>> getRegister(@PathParam("id") Long id) {
return service.getRegister(securityCtx, id);
}
@POST
@Path("{id}/register")
@Authenticated
@Produces(MediaType.APPLICATION_JSON)
@Operation(hidden = true)
public Uni<SimpleRegisterComb> addRegisterComb(@PathParam("id") Long id, RegisterRequestData data) {
return service.addRegisterComb(securityCtx, id, data);
}
@DELETE
@Path("{id}/register/{comb_id}")
@Authenticated
@Produces(MediaType.APPLICATION_JSON)
@Operation(hidden = true)
public Uni<Void> removeRegisterComb(@PathParam("id") Long id, @PathParam("comb_id") Long combId) {
return service.removeRegisterComb(securityCtx, id, combId);
}
@GET
@Path("{id}/safcaData")
@Authenticated

View File

@@ -0,0 +1,15 @@
package fr.titionfire.ffsaf.rest.data;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.Data;
@Data
@RegisterForReflection
public class RegisterRequestData {
private Long licence;
private String fname;
private String lname;
private Integer weight;
private int overCategory;
}

View File

@@ -0,0 +1,36 @@
package fr.titionfire.ffsaf.rest.data;
import fr.titionfire.ffsaf.data.model.LicenceModel;
import fr.titionfire.ffsaf.data.model.MembreModel;
import fr.titionfire.ffsaf.net2.data.SimpleClubModel;
import fr.titionfire.ffsaf.utils.RegisterEmbeddable;
import fr.titionfire.ffsaf.utils.Utils;
import io.quarkus.runtime.annotations.RegisterForReflection;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
@Data
@AllArgsConstructor
@RegisterForReflection
public class SimpleRegisterComb {
private long id;
private String fname;
private String lname;
private String categorie;
private SimpleClubModel club;
private Integer licence;
private Integer weight;
private int overCategory;
private boolean hasLicenceActive;
public static SimpleRegisterComb fromModel(RegisterEmbeddable register, List<LicenceModel> licences) {
MembreModel membreModel = register.getMembre();
return new SimpleRegisterComb(membreModel.getId(), membreModel.getFname(), membreModel.getLname(),
(membreModel.getCategorie() == null) ? "Catégorie inconnue" : membreModel.getCategorie().getName(),
SimpleClubModel.fromModel(membreModel.getClub()), membreModel.getLicence(), register.getWeight(),
register.getOverCategory(),
licences.stream().anyMatch(l -> l.isValidate() && l.getSaison() == Utils.getSaison()));
}
}