Class: Cpro::Resources::Annuaire
- Inherits:
-
Base
- Object
- Base
- Cpro::Resources::Annuaire
show all
- Defined in:
- lib/cpro/resources/annuaire.rb
Constant Summary
collapse
- TOTAL_KEY =
"nombre_total_resultats"
- SIRET_LENGTH =
14
- SIREN_LENGTH =
9
- OPERATEURS_SIRET =
Chaque champ filtrable n'admet qu'un seul opérateur : l'appelant fournit
siret: "70204275500240" et l'opérateur attendu est déduit d'ici.
siret et siren divergent du swagger, qui les déclare en contient. Le serveur refuse
cette forme par un 400 « Failed to read HTTP message » — une erreur de désérialisation,
levée avant tout traitement — et n'accepte que strict, sur les trois recherches de
l'Annuaire. Vérifié en sandbox le 27/08/2026 ; ce sont des identifiants, une recherche
partielle n'y a de toute façon pas de sens.
{
"siret" => "strict",
"siren" => "strict",
"denomination" => "contient",
"localite" => "contient",
"codePostal" => "contient",
"lignesAdresse" => "contient",
"subDivisionPays" => "contient",
"typeEtablissement" => "strict",
"etatAdministratif" => "strict"
}.freeze
- OPERATEURS_SIREN =
{
"siren" => "strict",
"raisonSociale" => "contient",
"typeEntite" => "strict",
"etatAdministratif" => "strict"
}.freeze
- OPERATEURS_CODE_ROUTAGE =
{
"siret" => "strict",
"identifiantRoutage" => "contient",
"libelleCodeRoutage" => "contient",
"localite" => "contient",
"codePostal" => "contient",
"lignesAdresse" => "contient",
"etatAdministratif" => "strict"
}.freeze
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Instance Method Details
#find_by_siren(siren, **options) ⇒ Object
53
54
55
56
|
# File 'lib/cpro/resources/annuaire.rb', line 53
def find_by_siren(siren, **options)
path = "siren/code-insee:#{normalize(siren, SIREN_LENGTH, "SIREN")}"
Entities::UniteLegale.new(get(path, query(options)))
end
|
#find_by_siret(siret, **options) ⇒ Object
48
49
50
51
|
# File 'lib/cpro/resources/annuaire.rb', line 48
def find_by_siret(siret, **options)
path = "siret/code-insee:#{normalize(siret, SIRET_LENGTH, "SIRET")}"
Entities::Etablissement.new(get(path, query(options)))
end
|
#healthcheck ⇒ Object
80
81
82
|
# File 'lib/cpro/resources/annuaire.rb', line 80
def healthcheck
get("healthcheck")
end
|
#search_code_routage(filtres: {}, **options) ⇒ Object
Seul accès au libellé d'un code routage et à son gestionEngagementJuridique : la
consultation unitaire GET /code-routage/siret:…/code:… ne retourne que ses lignes
d'annuaire, soit moins que find_by_siret. Filtrer sur siret pour se limiter à une
structure, faute de quoi la réponse balaie tout l'annuaire.
#search_siren(filtres: {}, **options) ⇒ Object
#search_siret(filtres: {}, **options) ⇒ Object
filtres est un mot-clé et non un positionnel : avec search_siret(filtres, **options),
un appel de la forme search_siret(siren: "702042755") verrait tous ses mots-clés partir
dans options sous Ruby 3 et lèverait une ArgumentError.