Development #38124
Toulouse Axel - faire un endpoint de mise à jour des informations relatives à la famille
0%
Description
Opération FormMajFamilleDui
Fichiers
Révisions associées
utils: manage nullable elements (#38124)
toulouse_axel: update family endpoint (#38124)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Note préliminaire : je serai d'avis de permettre les "patchs" i.e pourvoir envoyer des données incomplètes (d'après le schéma) qui seront réintroduites dans la donnée complète qui sera lue, en espérant les schémas compatibles en entrée et en sortie.
Ça permettra du côté de w.c.s. de découper la mise à jour en autant de formulaires qu'on le souhaite (ou pas mais on ne sera pas bloqué).
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0002-toulouse_axel-update-family-endpoint-38124.patch 0002-toulouse_axel-update-family-endpoint-38124.patch ajouté
- Fichier 0001-utils-manage-nullable-elements-38124.patch 0001-utils-manage-nullable-elements-38124.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
update bête et méchant, pas de patch pour le moment
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
Il faudrait ajouter UPDATE_FAMILY_SCHEMA['unflatten'] = True
et faire tes tests avec la syntaxe qu'utilisera w.c.s. i.e.
{
"ADRESSE/CODEINSEEVILLE": null,
"ADRESSE/CODEPOSTAL": "31400"
}
Pour transformer ton fichier de donnée actuel tu as passerelle.utils.json.flatten()
.
Mis à jour par Benjamin Dauvergne il y a plus de 4 ans
- Statut changé de Solution proposée à En cours
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0002-toulouse_axel-update-family-endpoint-38124.patch 0002-toulouse_axel-update-family-endpoint-38124.patch ajouté
- Fichier 0001-utils-manage-nullable-elements-38124.patch 0001-utils-manage-nullable-elements-38124.patch ajouté
- Statut changé de En cours à Solution proposée
Mis à jour par Thomas Noël il y a plus de 4 ans
Sur 0002
Sur flat_update_family_info.json on peut laisser quelques null par ci par là, mais il faudrait essentiellement avoir des chaines vides. En effet dans les appels wcs on va surtout remplir les données avec du gabarit Django (genre {{form_var_truc| default:""}}) et donc ça sera jamais None/null.
Ensuite, lors du retour de update_family_info, je serais partant pour renvoyer aussi post_data, pour savoir ce qui a été mis dans QUIACTUALISEDUI, mais surtout avoir un "echo" général de ce qui a été envoyé vers Axel (bon c'est pas le xml mais c'est super proche). Donc je dirais qqchose comme : return {'updated': True, 'dui': link.dui, 'post_data': post_data}
Pour le reste de 0002 ça me semble ok. Me reste 0001 où je patauge encore bien bien bien à comprendre.
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
0001 presque compris ; et ça me semble bon.
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution validée à Solution proposée
La fatigue m'a fait valider le ticket alors que j'ai fait des petites remarques sur le 0002. Je dévalide donc (mais tu peux pousser 0001, en fait)
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Fichier 0002-toulouse_axel-update-family-endpoint-38124.patch 0002-toulouse_axel-update-family-endpoint-38124.patch ajouté
- Fichier 0001-utils-manage-nullable-elements-38124.patch 0001-utils-manage-nullable-elements-38124.patch ajouté
remarques prises en compte :)
Mis à jour par Thomas Noël il y a plus de 4 ans
Lauréline Guerin a écrit :
remarques prises en compte :)
hannn zut je suis bête, oublié de voir que le raise APIError('Axel error: %s' % e, err='error')
lors du try/except sur form_maj_famille_dui()
pourrait lui aussi renvoyer le post_data ; à vrai dire c'est là que ça sera utile de comparer l'erreur renvoyée par Axel aux données poussées. Bon, pour APIError on peut seulement renvoyer un "data", donc je propose :
except:
APIError('Axel error: %s' % e, err='error', data={'error_post_data': post_data})
Un truc chouette serait qu'on puisse renvoyer aussi le XML généré, afin de pouvoir l'afficher à l'écran (action "Alerte" dans le workflow en cas d'erreur) aux personnes qui feront l'exploitation de l'affaire (admins fonctionnels, support, etc). Ca demanderait sans doute une petite adaptation sur AxelError pour qu'on puisse y ajouter des attributs genre xml_request et xml_response... Je vais faire un ticket séparé.
(et, aussi, je pense que le err='error' n'est pas pris en charge sur APIError, je sais plus pourquoi on est parti sur ça ; je vais faire un autre ticket sur ça, si besoin)
Mis à jour par Lauréline Guérin il y a plus de 4 ans
Mis à jour par Thomas Noël il y a plus de 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Lauréline Guérin il y a plus de 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit f1fe6158138c97de3fcc16a8f5c46988052ac362 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Dec 10 11:26:49 2019 +0100 toulouse_axel: update family endpoint (#38124) commit c053ef88fe601245dd01225d3bb4ac2f38f6eab1 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Dec 10 11:21:54 2019 +0100 utils: manage nullable elements (#38124)
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
toulouse_axel: fix date parsing (#38124)