Projet

Général

Profil

Development #38124

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

Ajouté par Lauréline Guérin il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
02 décembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Opération FormMajFamilleDui


Fichiers

Révisions associées

Révision 87c96fe1 (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

toulouse_axel: fix date parsing (#38124)

Révision c053ef88 (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

utils: manage nullable elements (#38124)

Révision f1fe6158 (diff)
Ajouté par Lauréline Guérin il y a plus de 4 ans

toulouse_axel: update family endpoint (#38124)

Historique

#2

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

#3

Mis à jour par Lauréline Guérin il y a plus de 4 ans

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

#4

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

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à En cours
#7

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.

#8

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.

#9

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)

#11

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)

#13

Mis à jour par Thomas Noël il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#14

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)
#15

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

Formats disponibles : Atom PDF