package fr.titionfire.ffsaf.rest.client; import fr.titionfire.ffsaf.rest.data.AssoData; import fr.titionfire.ffsaf.rest.data.UniteLegaleRoot; import io.quarkus.cache.CacheResult; import io.smallrye.mutiny.Uni; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; @Path("/") @RegisterRestClient public interface StateIdService { @GET @Path("/associations/{rna}") @CacheResult(cacheName = "AssoData_rna") Uni get_rna(@PathParam("rna") String rna); default Uni getAssoDataFromUnit(UniteLegaleRoot u) { AssoData assoData = new AssoData(); assoData.setSiren(u.getUnite_legale().getSiren()); assoData.setRna(u.getUnite_legale().getIdentifiant_association()); AssoData.Identite identite = new AssoData.Identite(); identite.setNom(u.getUnite_legale().getDenomination()); identite.setSiret_siege(u.getUnite_legale().getEtablissement_siege().getSiret()); assoData.setIdentite(identite); AssoData.Address address = new AssoData.Address(); StringBuilder voie = new StringBuilder(); if (u.getUnite_legale().getEtablissement_siege().getNumero_voie() != null) voie.append(u.getUnite_legale().getEtablissement_siege().getNumero_voie()).append(' '); if (u.getUnite_legale().getEtablissement_siege().getType_voie() != null) voie.append(u.getUnite_legale().getEtablissement_siege().getType_voie()).append(' '); if (u.getUnite_legale().getEtablissement_siege().getLibelle_voie() != null) voie.append(u.getUnite_legale().getEtablissement_siege().getLibelle_voie()).append(' '); address.setVoie(voie.toString().trim()); address.setComplement(u.getUnite_legale().getEtablissement_siege().getComplement_adresse()); address.setCode_postal(u.getUnite_legale().getEtablissement_siege().getCode_postal()); address.setCommune( new AssoData.Commune(u.getUnite_legale().getEtablissement_siege().getLibelle_commune())); assoData.setCoordonnees(new AssoData.Coordonnee(address)); return Uni.createFrom().item(assoData); } }