Closed skelz0r closed 1 year ago
irb(main):073:0> AuthorizationRequest.includes(:contact_technique).where(status: 'validated', api: 'entreprise').select { |ar| ar.contact_technique.nil? }.count
=> 29
--^ j'ai de tout en terme de date, avec plein de demandes sur la même date sans contact technique
irb(main):075:0> AuthorizationRequest.includes(:contact_metier).where(status: 'validated', api: 'entreprise').select { |ar| ar.contact_metier.nil? }.count
=> 24
même certains sans demandeur:
irb(main):076:0> AuthorizationRequest.includes(:demandeur).where(status: 'validated', api: 'entreprise').select { |ar| ar.demandeur.nil? }.count
=> 6
Pour les demandeurs, seulement 6 vieilles demandes. Le reste y'a du vieux et du récent (9 pour metier en récent, 5 en technique).
=> Y'a eu un mauvais clean ET il y a un bug en cours.
Vu qu'il y a seulement 9 demandes récemment validées, cela affecte toutes les demandes.
Même souci pour API Particulier sur les contacts techniques, semblerait qu'aucune nouvelle demande ne possède de contact technique (mais tous les contacts demandeurs sont là).
C'est clean et déployé pour les nouveaux.
En ce qui concerne les anciens je pense que j'ai une piste: on a des users qui ne persistent pas car ils existent déjà en database MAIS avec des différences de majuscules.
Par exemple:
email = 'john.doe@oki.fr'
user=User.find_or_initialize_by(email: email)
user.valid?
=> false
irb(main):200:0> user.errors
=> #<ActiveModel::Errors [#<ActiveModel::Error attribute=email, type=taken, options={:value=>"john.doe@oki.fr"}>]>
User.where("email ilike 'john.doe@oki.fr'")
=>
[#<User:0x00007f15c974dac0
id: "whatever",
email: "john.doe@OKI.fr",
]
Plus je creuse plus c'est wtf :')
Je note des trucs à fixer dans une autre itération:
find_or_initialize_by_email
On est OK pour le clean du legacy.
Je vais aller harden aussi cette gestion d'email parce que c'est pas possible là.. (et je closerai à ce moment là)
Pour info j'ai clean avec ça: https://gist.github.com/skelz0r/a26b559f5f39f4b66f045f0f31159dea (j'ai commenté l'historique)
Il y a de l'inconsistence de données même sur les nouvelles data.
Pour https://datapass.api.gouv.fr/api-entreprise/52900 je n'ai pas les contacts tech/metier en db.
Il semblerait qu'il y ait beaucoup plus de problèmes, on va continuer de creuser ici
cf https://github.com/etalab/admin_api_entreprise/issues/1088#issuecomment-1589601019