Development #30692
CD13: connecteur MDPH
0%
Description
À développer en mimant le connecteur ATOS-Genesys et sur la base de [[bouches-du-rhone-cd13:Web services MDPH du CD13]].
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Patch proposed changé de Non à Oui
Avec que des tests en mock directement sur les endpoint, pour ce genre de connecteurs je pense que c'est suffisant.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
D'abord faire des tests en vrai avant de pousser, pour l'instant on a qu'un web-service bouchon qui renvoie un fichier statique coté CD13.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Fichier 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch ajouté
Prise en compte du ticket #30782.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Fichier 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch 0002-rangement-des-demandes-en-deux-groupes-en-cours-et-h.patch ajouté
Avec adaptation des tests.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Statut changé de Nouveau à Solution proposée
Code testé avec données de test sur #30062, à relire.
Mis à jour par Thomas Noël il y a environ 5 ans
Allez, « (C) 2019 »
Le check_status(self)
il faut qu'il raise en cas de pépin ; ie tu peux remplacer tout le try/except par un simple link.get_file()
.
Sur les APIError qui sont liées à la validation des données en entrée, tu peux faire des « raise APIError(..., http_status=400) »
Sur :
# Reorganize demandes # FIXME add more schema controls
c'est un vieux FIXME ou bien il faudra ajouter d'autres contrôles ? Je serais d'avis de le retirer de toute façon, on ajoutera les contrôles si on voit que leur appli commence à envoyer du n'imp.
Pourquoi «methods=['post'],» sur link/unlink ? Je serais pour laisser tout passer, y compris le get qui permet de faciliter les tests rapides (hop un clic sur l'url...). Mais sinon, tu peux au moins ouvrir à 'delete' pour unlink, maintenant que w.c.s. sait le faire.
Au niveau du link, la ligne « link.get_file(email=email) » elle est là pour valider que l'appairage a été fait avec un dossier existant et correct ? Si oui, je serais pour le dire en commentaire.
self.EMAIL_RE.match(email) j'ai jamais aimé les validations de mail à base de regexp, mais bon, elle est large ici, ça passe :)
Pour le unlink, je ne sais pas si c'est utile fonctionnellement, mais peut-être ajouter la possibilité de "se délinker de tout" si aucun link_id n'est envoyer. Disons que ça coûte pas cher de l'avoir maintenant.
Sur le endpoint dossiers :- ajouter link_id dans les parameters, pour montrer qu'il est possible. Et peut-être renommer "Get datas for all links" en "Get datas for all links, or for a specified one"
- au niveau de "for link in qs:" j'ai l'impression que l'API va crasher si un des dossiers lève une exception. Peut-être faudrait-il être plus laxiste ? Genre, ne planter que si tous les get_file ont raté, et si seulement certains ont levé une exception le dire dans un "error_on_links_id: [...]" ajouté à coté de data.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Thomas Noël a écrit :
Pourquoi «methods=['post'],» sur link/unlink ? Je serais pour laisser tout passer, y compris le get qui permet de faciliter les tests rapides (hop un clic sur l'url...). Mais sinon, tu peux au moins ouvrir à 'delete' pour unlink, maintenant que w.c.s. sait le faire.
Pas fan des GETs qui font des trucs, et je ne sais pas sur quelle URL on irait cliquer, je fais mes tests avec http
j'ai juste à ajouter POST
.
Au niveau du link, la ligne « link.get_file(email=email) » elle est là pour valider que l'appairage a été fait avec un dossier existant et correct ? Si oui, je serais pour le dire en commentaire.
Pas du tout, c'est pour audit, ils veulent voir pour chaque appel fait à l'API l'email de l'utilisateur concerné de notre coté, j'ai ajouté des commentaires pour expliquer.
Pour le unlink, je ne sais pas si c'est utile fonctionnellement, mais peut-être ajouter la possibilité de "se délinker de tout" si aucun link_id n'est envoyer. Disons que ça coûte pas cher de l'avoir maintenant.
Ok, unlink(link_id='all') ajouté, je n'aime pas faire une action aussi violente sur l'absence d'une valeur.
Sur le endpoint dossiers :
- ajouter link_id dans les parameters, pour montrer qu'il est possible. Et peut-être renommer "Get datas for all links" en "Get datas for all links, or for a specified one"
Ok.
- au niveau de "for link in qs:" j'ai l'impression que l'API va crasher si un des dossiers lève une exception. Peut-être faudrait-il être plus laxiste ? Genre, ne planter que si tous les get_file ont raté, et si seulement certains ont levé une exception le dire dans un "error_on_links_id: [...]" ajouté à coté de data.
Yep pris en compte ta remarque en plus, avec un nouveau test "_partial_failure", je note au passage qu'il serait pratique d'extraire to_json().err_to_response() que je suis obligé d'instancier juste pour cela.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0005-remove-obsolete-FIXME.patch 0005-remove-obsolete-FIXME.patch ajouté
- Fichier 0002-copyright-2019.patch 0002-copyright-2019.patch ajouté
- Fichier 0010-handle-partial-failure-when-getting-multiple-links.patch 0010-handle-partial-failure-when-getting-multiple-links.patch ajouté
- Fichier 0003-check_status-must-raise.patch 0003-check_status-must-raise.patch ajouté
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Fichier 0006-add-DELETE-verb-for-unlink.patch 0006-add-DELETE-verb-for-unlink.patch ajouté
- Fichier 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch ajouté
- Fichier 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch ajouté
- Fichier 0004-add-http_status-400-on-input-data-validation.patch 0004-add-http_status-400-on-input-data-validation.patch ajouté
- Fichier 0008-add-unlink-all-capacity.patch 0008-add-unlink-all-capacity.patch ajouté
Toutes remarques intégrés, je rebaserai avant de pousser.
Mis à jour par Thomas Noël il y a environ 5 ans
- Statut changé de Solution proposée à Solution validée
Je me dis qu'à l'usage, un check_status qui fait un link.get_file() sur le premier link, ça pourrait finir par planter si le premier link est en fait périmé (pointe vers un vieux dossier supprimé). Je me dis qu'on pourrait plutôt taper sur le dernier lien créé... Genre « link = Link.objects.order_by('created').last() »
Pousse avec ou sans ce mini détail.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
Thomas Noël a écrit :
Je me dis qu'à l'usage, un check_status qui fait un link.get_file() sur le premier link, ça pourrait finir par planter si le premier link est en fait périmé (pointe vers un vieux dossier supprimé). Je me dis qu'on pourrait plutôt taper sur le dernier lien créé... Genre « link = Link.objects.order_by('created').last() »
Ça c'est une bonne idée, je prends.
Pousse avec ou sans ce mini détail.
Avec.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Fichier 0005-remove-obsolete-FIXME.patch 0005-remove-obsolete-FIXME.patch ajouté
- Fichier 0002-copyright-2019.patch 0002-copyright-2019.patch ajouté
- Fichier 0010-handle-partial-failure-when-getting-multiple-links.patch 0010-handle-partial-failure-when-getting-multiple-links.patch ajouté
- Fichier 0003-check_status-must-raise.patch 0003-check_status-must-raise.patch ajouté
- Fichier 0001-add-MDPH13-connector-30692.patch 0001-add-MDPH13-connector-30692.patch ajouté
- Fichier 0006-add-DELETE-verb-for-unlink.patch 0006-add-DELETE-verb-for-unlink.patch ajouté
- Fichier 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch 0007-add-comment-on-audit-purpose-of-email-passed-to-WS-c.patch ajouté
- Fichier 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch 0009-add-link_id-to-dossiers-parameters-modify-descriptio.patch ajouté
- Fichier 0004-add-http_status-400-on-input-data-validation.patch 0004-add-http_status-400-on-input-data-validation.patch ajouté
- Fichier 0008-add-unlink-all-capacity.patch 0008-add-unlink-all-capacity.patch ajouté
- Fichier 0011-mdph13-use-latest-link-instead-of-first-for-check_st.patch 0011-mdph13-use-latest-link-instead-of-first-for-check_st.patch ajouté
- Statut changé de Solution validée à Solution proposée
Avec suggestion.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Statut changé de Solution proposée à Solution déployée
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Statut changé de Solution déployée à Fermé
add MDPH13 connector (#30692)