etalab / transport-site

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

Erreur 500 quand organization_id est nil #4017

Closed cyrilmorin closed 4 days ago

cyrilmorin commented 1 week ago

Hello,

Le dataset Réseau urbain Intercom renvoie vers une erreur 500

Merci :)

vdegove commented 1 week ago

https://transport-data-gouv-fr.sentry.io/issues/5528852013/?environment=prod&project=6197733&query=is%3Aunresolved+issue.priority%3A%5Bhigh%2C+medium%5D&referrer=issue-stream&statsPeriod=14d&stream_index=3

cyrilmorin commented 1 week ago

pour info c'est un jeu avec un "Auteur" au lieu d'une "Organisation", le producteur devait modifier .... je le relance

vdegove commented 1 week ago

Effectivement, les champs organization, organization_id et organization_type de ce dataset sont vides en base de donnée :

image

Ce qui plante sur cette fonction :

  defp assign_is_producer(
         %Plug.Conn{assigns: %{current_contact: current_contact}} = conn,
         %DB.Dataset{organization_id: organization_id}
       ) do
    is_producer =
      if is_nil(current_contact) do
        false
      else
        DB.Contact.base_query()
        |> join(:inner, [contact: c], c in assoc(c, :organizations), as: :organization)
        |> where([contact: c, organization: o], c.id == ^current_contact.id and o.id == ^organization_id)
        |> DB.Repo.exists?()
      end

    assign(conn, :is_producer, is_producer)
  end

Mais si ça n’avait pas planté ici, ça aurait planté ailleurs, c’est pas normal qu’on laisse importer de la mauvaise donnée comme ça, je crée une issue.

vdegove commented 1 week ago

(@cyrilmorin que dis-tu de supprimer le JDD pour l’instant ?)

cyrilmorin commented 1 week ago

Je viens de renvoyer ce matin le message et j'avais alerté à maintes reprises le producteur. Ce jeu n'aurait jamais d'être référencé initialement je te rejoins (il l'était depuis un moment je crois !)

Je le déréférence de ce pas !

cyrilmorin commented 1 week ago

@vdegove pour info en vérifiant il y a un autre dataset sans Organisation et il est en erreur 500 également https://transport.data.gouv.fr/datasets/reseau-de-transport-routier-national-metropolitain

vdegove commented 1 week ago

Clos en faveur de #4018

AntoineAugusti commented 4 days ago

Étant donné que ceci affecte l'affichage de plusieurs JDDs et que #4018 + la migration des quelques JDDs concernés ne sera pas immédiate je propose de corriger le bug.

Je pense que c'est moi qui ait écrit le code problématique, j'avais conscience que organization_id pouvait être nil mais visiblement je me suis fait surprendre.