package fr.titionfire.ffsaf.rest; import fr.titionfire.ffsaf.rest.client.SirenService; import fr.titionfire.ffsaf.rest.data.UniteLegaleRoot; import fr.titionfire.ffsaf.rest.exception.DNotFoundException; import io.smallrye.mutiny.Uni; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.rest.client.inject.RestClient; @Path("api/asso") public class AssoEndpoints { @RestClient SirenService sirenService; @GET @Path("siren/{siren}") @Produces(MediaType.APPLICATION_JSON) @Operation(hidden = true) public Uni getInfoSiren(@PathParam("siren") String siren) { return sirenService.get_unite(siren).onFailure().transform(throwable -> { if (throwable instanceof WebApplicationException exception) { if (exception.getResponse().getStatus() == 400) return new DNotFoundException("Siret introuvable"); } return throwable; }); } }