etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
184 stars 28 forks source link

Reprise des "contact points" depuis l'API de data.gouv.fr #3897

Open AntoineAugusti opened 2 months ago

AntoineAugusti commented 2 months ago

data.gouv.fr propose dans son API des contact_points qui sont repris des plateformes open data tierces (dont OpenDataSoft). Ce concept n'est pas encore disponible dans l'UI de data.gouv.fr : pas affiché, pas possible pour un producteur de désigner un point de contact tiers depuis l'admin.

Ces contact_points ressemblent à nos contacts producteurs et il semble pertinent de récupérer cette information pour créer un contact et inscrire celle-ci aux notifications à destination des producteurs.

Vérifier avec @etalab/transport-bizdev que c'est bien ce qui est souhaité et planifier le travail ?

Exemple de retour de l'API avec un contact point Doc API data.gouv.fr pour les contacts

JDDs avec contact points

💡 14 JDDs référencés sur le PAN ont actuellement au moins 1 contact point renseigné sur l'API de data.gouv.fr

import Ecto.Query
ids = DB.Dataset.base_query() |> select([d], d.datagouv_id) |> DB.Repo.all()
res =
  ids
  |> Enum.map(fn id -> {:ok, data} = Datagouvfr.Client.Datasets.get(id); {id, data} end)
  |> Enum.reject(fn {_, %{"contact_point" => c}} -> is_nil(c) end)

Identifiants

iex> res |> Enum.map(&elem(&1, 0))
["6598d08a71d0e0c70dc71b49", "65ab0d58c86e8597d65aa47f",
 "5e6193339ce2e7207cf4c8f2", "65cd573153efae3319e5f9ff",
 "5e6193349ce2e72071f4c8c4", "60ff4f4f5daeab30a2042cfe",
 "632ba6b39f7b81247beacfa5", "5e6193349ce2e7207cf4c8f4",
 "5e6435f59ce2e71b24f4c8c0", "5e6193339ce2e72071f4c8c2",
 "60235ae2071b4e4c927a57de", "5e6193359ce2e7207cf4c8f5",
 "65e1203bb1957b6a9b7b2a8e", "5ebf2f52c2d896a9498e4418"]

Contact points

Détails ```elixir iex> res |> Enum.map(&elem(&1, 1)["contact_point"]) [ %{ "email" => "usages.numeriques@loire-atlantique.fr", "id" => "65c3013b0864ecbbc3e5f9fe", "name" => "Service participation citoyenne et usages numériques" }, %{ "email" => "ProjetSmartData@strasbourg.eu", "id" => "65c2cab5f3704dba6458ddc9", "name" => "Atelier de géomatique" }, %{ "email" => "sigrid.guenault@centrevaldeloire.fr", "id" => "65c2c87830f0b4c4ec58ddc7", "name" => "Sigrid GUENAULT" }, %{ "email" => "developpement-durable@clermontmetropole.eu", "id" => "65cd573153efae3319e5f9fe", "name" => "" }, %{ "email" => "blois-contact@keolis.com", "id" => "65c2c8785ed4775b0258ddc7", "name" => "" }, %{ "email" => "opendata@saintnazaireagglo.fr", "id" => "65c2ced59a474def4fe5f9fe", "name" => "Service Géomatique OpenData - Saint-Nazaire Agglomération" }, %{ "email" => "opendata@saintnazaireagglo.fr", "id" => "65c2ced59a474def4fe5f9fe", "name" => "Service Géomatique OpenData - Saint-Nazaire Agglomération" }, %{ "email" => "david.nikiema@keolis.com", "id" => "65c2c878db5f2ad8de58ddc8", "name" => "NIKIEMA David" }, %{ "email" => "sigrid.guenault@centrevaldeloire.fr", "id" => "65c2c87830f0b4c4ec58ddc7", "name" => "Sigrid GUENAULT" }, %{ "email" => "sigrid.guenault@centrevaldeloire.fr", "id" => "65c2c87830f0b4c4ec58ddc7", "name" => "Sigrid GUENAULT" }, %{ "email" => "bacsdeloire@loire-atlantique.fr", "id" => "65c301967e14bcee7de5f9fe", "name" => "Service gestion ouvrages d'art" }, %{ "email" => "sigrid.guenault@centrevaldeloire.fr", "id" => "65c2c87830f0b4c4ec58ddc7", "name" => "Sigrid GUENAULT" }, %{ "email" => "opendata@saintnazaireagglo.fr", "id" => "65c2ced59a474def4fe5f9fe", "name" => "Service Géomatique OpenData - Saint-Nazaire Agglomération" }, %{ "email" => "p.salvaudon@ville-amboise.fr", "id" => "65c2c878f9d349e5ee58ddd1", "name" => "" } ] ```