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.SimpleCompetData; import fr.titionfire.ffsaf.utils.CompetitionSystem; import fr.titionfire.ffsaf.utils.SecurityCtx; import io.quarkus.security.Authenticated; import io.smallrye.mutiny.Uni; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; import java.util.List; @Path("api/competition/") public class CompetitionEndpoints { @Inject CompetitionService service; @Inject SecurityCtx securityCtx; @GET @Path("{id}") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni getById(@PathParam("id") Long id) { return service.getById(securityCtx, id); } @GET @Path("{id}/safcaData") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni getSafcaData(@PathParam("id") Long id) { return service.getSafcaData(securityCtx, id); } @GET @Path("all") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni> getAll() { return service.getAll(securityCtx); } @GET @Path("all/{system}") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni> getAllSystem(@PathParam("system") CompetitionSystem system) { return service.getAllSystem(securityCtx, system); } @POST @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni addOrUpdate(CompetitionData data) { return service.addOrUpdate(securityCtx, data); } @POST @Path("/safcaData") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni setSafcaData(SimpleCompetData data) { return service.setSafcaData(securityCtx, data); } @DELETE @Path("{id}") @Authenticated @Produces(MediaType.APPLICATION_JSON) public Uni delete(@PathParam("id") Long id) { return service.delete(securityCtx, id); } }