etalab / transport-site

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

Rendre un peu plus simple à comprendre le mix de données BDD / API data.gouv / session #3900

Open vdegove opened 2 months ago

vdegove commented 2 months ago

Je fais une issue floue à reclarifier plus tard.

Je trouve que ça demande un effort mental un peu trop important en tant que développeur / relecteur de réussir à suivre ce qui vient de data.gouv, de notre BDD, de la session et du lien entre les différents objets, dans tout ce qui touche aux contacts, leurs organisations et leurs datasets.

Un certain nombre de fonctionnalités vont en effet fetcher de la donnée de datagouv en live, puis la remixer avec notre base de données :

L’idée est notamment que la liste des organisations d’un utilisateur peut changer assez rapidement, et que ce qu’on a en BDD comme organisations liées à DB.Contact ne date que de la dernière connexion de chaque utilisateur ou tâche récurrente. Du coup, pour ces fonctionnalités là, on va aller vérifier sur l’API datagouv les organisations (via notamment DB.Dataset.datasets_for_user) de l’utilisateur (qui est un concept légèrement différent du contact) pour ensuite le mélanger avec ce qu’on a en BDD.

Typiquement, ce qu’on va faire c’est donc :

Une fois qu’on le sait, ça va mieux, il faut notamment se dire que «User» c’est datagouv, et «contact» c’est notre base de données, mais pour aborder le code la première fois c’est dur et même ensuite ça rajoute une charge mentale.

Je ne sais pas si c’est inévitable avec l’existence même de la synchro ou si on peut faire mieux.