49 lines
2.2 KiB
Java
49 lines
2.2 KiB
Java
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<AssoData> get_rna(@PathParam("rna") String rna);
|
|
|
|
default Uni<AssoData> 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);
|
|
}
|
|
}
|