55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
from src.utils import DOMAIN_NAME
|
|
from src.utils.data import get_annuaire_data
|
|
|
|
|
|
def make_org_jsonld(org_id, org_type, org_name=None, type_org_id="SIRET") -> dict:
|
|
org_types = {"acheteur": "GovernmentOrganization", "titulaire": "Organization"}
|
|
address = None
|
|
if type_org_id.lower() == "siret" and len(org_id) == 14:
|
|
annuaire_data = get_annuaire_data(org_id)
|
|
if not annuaire_data:
|
|
return {}
|
|
annuaire_address = annuaire_data["matching_etablissements"][0]
|
|
code_postal = annuaire_address["code_postal"]
|
|
commune = annuaire_address["libelle_commune"]
|
|
|
|
address = (
|
|
{
|
|
"@type": "PostalAddress",
|
|
"streetAddress": annuaire_address.get("adresse", "")
|
|
.replace(code_postal, "")
|
|
.replace(commune, "")
|
|
.strip(),
|
|
"addressLocality": commune,
|
|
"postalCode": code_postal,
|
|
"addressCountry": "FR",
|
|
},
|
|
)
|
|
|
|
jsonld = {
|
|
"@type": org_types[org_type],
|
|
"name": org_name,
|
|
"url": f"https://decp.info/{org_type}s/{org_id}",
|
|
"sameAs": f"https://annuaire-entreprises.data.gouv.fr/etablissement/{org_id}",
|
|
"identifier": {
|
|
"@type": "PropertyValue",
|
|
"propertyID": type_org_id.lower(),
|
|
"value": org_id,
|
|
},
|
|
}
|
|
|
|
if address:
|
|
jsonld["address"] = address
|
|
|
|
return jsonld
|
|
|
|
|
|
META_CONTENT = {
|
|
"image_url": f"https://{DOMAIN_NAME}/assets/decp.info.png",
|
|
"title": "decp.info - exploration des marchés publics français",
|
|
"description": (
|
|
"Explorez et analysez les données des marchés publics français avec cet outil libre et gratuit. "
|
|
"Pour une commande publique accessible à toutes et tous."
|
|
),
|
|
}
|