Project

General

Profile

Development #38124

Toulouse Axel - faire un endpoint de mise à jour des informations relatives à la famille

Added by Lauréline Guerin 8 months ago. Updated 7 months ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
02 Dec 2019
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

Opération FormMajFamilleDui

0001-utils-manage-nullable-elements-38124.patch View (3.39 KB) Lauréline Guerin, 10 Dec 2019 03:03 PM

0002-toulouse_axel-update-family-endpoint-38124.patch View (27.5 KB) Lauréline Guerin, 10 Dec 2019 03:03 PM

0001-utils-manage-nullable-elements-38124.patch View (3.39 KB) Lauréline Guerin, 12 Dec 2019 02:46 PM

0002-toulouse_axel-update-family-endpoint-38124.patch View (34.9 KB) Lauréline Guerin, 12 Dec 2019 02:46 PM

0001-utils-manage-nullable-elements-38124.patch View (3.39 KB) Lauréline Guerin, 19 Dec 2019 09:30 AM

0002-toulouse_axel-update-family-endpoint-38124.patch View (35 KB) Lauréline Guerin, 19 Dec 2019 09:30 AM

0001-utils-manage-nullable-elements-38124.patch View (3.39 KB) Lauréline Guerin, 19 Dec 2019 11:20 AM

0002-toulouse_axel-update-family-endpoint-38124.patch View (35.1 KB) Lauréline Guerin, 19 Dec 2019 11:20 AM

Associated revisions

Revision 87c96fe1 (diff)
Added by Lauréline Guérin 7 months ago

toulouse_axel: fix date parsing (#38124)

Revision c053ef88 (diff)
Added by Lauréline Guérin 7 months ago

utils: manage nullable elements (#38124)

Revision f1fe6158 (diff)
Added by Lauréline Guérin 7 months ago

toulouse_axel: update family endpoint (#38124)

History

#2 Updated by Benjamin Dauvergne 8 months ago

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é).

#3 Updated by Lauréline Guerin 7 months ago

update bête et méchant, pas de patch pour le moment

#4 Updated by Benjamin Dauvergne 7 months ago

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().

#5 Updated by Benjamin Dauvergne 7 months ago

  • Status changed from Solution proposée to En cours

#6 Updated by Lauréline Guerin 7 months ago

#7 Updated by Thomas Noël 7 months ago

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.

#8 Updated by Thomas Noël 7 months ago

  • Status changed from Solution proposée to Solution validée

0001 presque compris ; et ça me semble bon.

#9 Updated by Thomas Noël 7 months ago

  • Status changed from Solution validée to 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)

#11 Updated by Thomas Noël 7 months ago

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)

#13 Updated by Thomas Noël 7 months ago

  • Status changed from Solution proposée to Solution validée

#14 Updated by Lauréline Guerin 7 months ago

  • Status changed from Solution validée to 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)

#15 Updated by Frédéric Péters 7 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF